ERRO AO ATUALIZAR UM REGISTRO EM BANCO MYSQL

FFECHER 09/10/2013 15:40:49
#429764
Prezados :
Estou criando um cadastro de usuários, com banco MYSQL (WEB) via ADO. Consigo incluir e excluir, todavia alterar apresenta erro.
Obrigado.
Fernando
Segue abaixo a rotina para alterar:
data1.ConnectionString = DirBanco
data1.RecordSource = [Ô]select * from usuarios order by idUsuario[Ô]
data1.Refresh
data1.Recordset.MoveFirst
data1.Recordset.Find [Ô]idUsuario = [ô][Ô] & cd_usuario.Text & [Ô][ô][Ô], adSearchForward
If Not data1.Recordset.EOF Then
data1.Recordset.UpdateBatch
data1.Recordset([Ô]nmUsuario[Ô]) = usuario
data1.Recordset([Ô]cdSenha[Ô]) = senha
data1.Recordset([Ô]idHolding[Ô]) = nrHolding
data1.Recordset([Ô]cdAtivo[Ô]) = [Ô]S[Ô]
data1.Recordset([Ô]cdTipo[Ô]) = Val(Left(cdTipo, 1))
data1.Recordset.Update
data1.Refresh
endif
KERPLUNK 09/10/2013 15:46:19
#429771
Uma primeira dica: Pare de ver [Ô]erro[Ô] como um booleano. Ele tem uma mensagem, e no VB6 um código. Se você disser qual erro, de preferência a mensagem de erro, facilitaria pra gente te ajudar.
MARCELO.TREZE 09/10/2013 15:52:41
#429776
Resposta escolhida
Colega isso não é ADO é data control, e olha eu nao aconselho a usar esse tipo de componente, ainda mais com mysql, é a mesma coisa que por agua no tanque de uma ferrari, parta para ADO puro.

massss no seu caso faça apenas isso

data1.ConnectionString = DirBanco 
data1.RecordSource = [Ô]UPDATE usuarios SET nmUsuario=[ô][Ô] & usuario & [Ô][ô],cdSenha=[ô][Ô] & senha & [Ô][ô],idHolding=[ô][Ô] & nrHolding & [Ô][ô],cdAtivo=[ô]S[ô],cdTipo=[ô][Ô] & Val(Left(cdTipo, 1)) & [Ô][ô] WHERE idUsuario = [ô][Ô] & cd_usuario.Text & [Ô][ô][Ô]
FFECHER 09/10/2013 19:06:06
#429798
Valeu Brother... mudei alguns parâmetros e funcionou...
Obrigado.
FFECHER 09/10/2013 19:50:19
#429801
Marcelo: Preciso de um help seu:
Preciso gravar na variável [Ô]maximo[Ô] o valor máximo de idUsuario da tabela [Ô]usuarios[Ô]
Tentei isso mas não deu certo:

adoConn.ConnectionString = DirBanco
adoConn.Open
adoConn.Execute [Ô]Select max(idUsuario) as [maximo] from usuarios[Ô]
adoConn.Close

Obrigado.
Fernando
MARCELO.TREZE 09/10/2013 20:15:09
#429803
tenta assim colega

adoConn.Execute [Ô]Insert Into usuarios (idusuario) select Max(idusuario) + 1 form usuarios[Ô]


FFECHER 09/10/2013 20:23:38
#429804
Fala brother...
consegui dessa maneira
adoConn.ConnectionString = DirBanco
adoConn.Open
Set rss = adoConn.Execute([Ô]Select max(idUsuario) as Qt from usuarios [Ô])
idUsuario = rss([Ô]Qt[Ô]) + 1
adoConn.Close

Aproveite e me ajude na seguinte situação.
Preciso verificar se um registro de idUsuario existe. Pensei em fazer assim:
adoConn.ConnectionString = DirBanco
adoConn.Open
Set rss = adoConn.Execute([Ô]Select idUsuario as Qt from usuarios where idUsuario =[Ô] & idUsuario)
idUsuario = rss([Ô]Qt[Ô]) [ô][ô]funciona quando idUsuario existe.
O problema é que não sei como identificar se é fim de arquivo, ou arquivo vazio... (BOF ou EOF)
Que comando poderia usar para checar essas 2 possibilidades?
Obrigado mais uma vez.
Fernando




FFECHER 09/10/2013 21:09:29
#429805
Marcelo... obrigado.
Consegui resolver os problemas.
Um abraço
Fernando.
Tópico encerrado , respostas não são mais permitidas