PROBLEMA COM CODIGO SEQUENCIAL MYSQL
Amigos, boa noite, me deparei com um probleminha aqui meio estranho, vejam so:
Tenho uma coluna no meu banco com nome de numvisita, esta coluna pode ser nula ou nao dependendo do tipo de movimentacao que fizer, exemplo : tenho 1 registro de ocorrencias nessa tela nao preciso de informacao nessa coluna, entao nao gravo nada nela, [Ô]null[Ô], em outra tela eu ja tenho que gravar porem com sequencial, exemplo : ordem de serviço ele vai procurar a ultima informacao que nao seja nula nessa coluna e adicionar + 1 me dando o numero da ordem de serviço, utilizo a funcao abaixo para fazer tal operaçao, coloquei a caracteristica no banco como INTEGER ai da o erro 438 ( quebra de variavel ), se coloco como VARCHAR ele da a somatoria até 10, exemplo : 1,2,3,4,5... chegando em 10, ele para, nao conta +1, +1.. e assim sucessivamente.. eu gostaria de verificar se alguem ja passou por isso?
[ô]Chamando a funcao.
Desde ja agradeço a todos.!!!
Tenho uma coluna no meu banco com nome de numvisita, esta coluna pode ser nula ou nao dependendo do tipo de movimentacao que fizer, exemplo : tenho 1 registro de ocorrencias nessa tela nao preciso de informacao nessa coluna, entao nao gravo nada nela, [Ô]null[Ô], em outra tela eu ja tenho que gravar porem com sequencial, exemplo : ordem de serviço ele vai procurar a ultima informacao que nao seja nula nessa coluna e adicionar + 1 me dando o numero da ordem de serviço, utilizo a funcao abaixo para fazer tal operaçao, coloquei a caracteristica no banco como INTEGER ai da o erro 438 ( quebra de variavel ), se coloco como VARCHAR ele da a somatoria até 10, exemplo : 1,2,3,4,5... chegando em 10, ele para, nao conta +1, +1.. e assim sucessivamente.. eu gostaria de verificar se alguem ja passou por isso?
[ô]Funcao
Public Function PCodigo(vTab As String, vCampo As String, vCond As String)
Dim strSQL As String
Set clsCnn = New TS_AcessoBD
strSQL = [Ô]SELECT MAX([Ô] & Trim(vCampo) & [Ô]) AS CODIGO FROM [Ô] & Trim(vTab) & [Ô][Ô] & vCond & [Ô][Ô]
Set MyRS = clsCnn.ExecutaSQL(strSQL)
If IsNull(MyRS([Ô]CODIGO[Ô])) = True Then
ProximoCodigo = 1
Else
ProximoCodigo = MyRS([Ô]CODIGO[Ô]) + 1
End If
Set clsCnn = Nothing
End Function
[ô]Chamando a funcao.
Private Sub NumeracaoAutomatica()
Dim vCdg As Integer
vCdg = ProximoCodigo([Ô]movimentoocorrencias[Ô], [Ô]idordemservico[Ô], [Ô][Ô])
lblOS.Caption = [Ô][Ô] & vCdg
End Sub
Desde ja agradeço a todos.!!!
Tente declarar a função como o tipo de dados que ela deve retornar:
Public Function PCodigo(vTab As String, vCampo As String, vCond As String) As Integer
tente declarar como bigint
Tópico encerrado , respostas não são mais permitidas