ERRO NO EDIT USANDO MYSQL

GFASSIO 18/01/2010 15:43:49
#332238
Olá gente, tudo bem?
Seguinte, estou migrando para Mysql meus sistemas que eram em Access e DAO, mas como meu tempo é curto e são muitos os sistemas, estou migrando para MySql e DAO mesmo, já que assim, só preciso acrescentar uma linha a mais no meu código, que é a linha de conexão.

Está tudo funcionando, só que por exemplo quando entro num cadastro para fazer uma alteração, mas NÃO altero nada e salvo dá um erro dizendo assim: [Ô]O mecanismo de bando de dados parou o processo porque outro usuário está tentando acessar o mesmo dado no mesma hora[Ô], mas se eu altero alguma coisa no cadastro não da erro.

Pq será?

Abraços e desde já agradecido!
Gustavo Fássio
SINKERTEC 19/01/2010 10:16:23
#332274
Resposta escolhida
Meu caro

Poste aqui o código que gera esse erro para podemos ajudá-lo melhor!!

Grato
GFASSIO 19/01/2010 17:51:14
#332338
tipo assim:

Tabela.edit
tabela!campo1=xx
tabela!campo2=yy
tabela.update o erro está aqui [txt-color=#e80000]SE[/txt-color] caso eu não tenha alterado os valores dos campos acima

se eu alterar o valor docampo1 ou do campo2 não dá erro

Obrigado pela atenção!
MARCELO.TREZE 19/01/2010 20:20:25
#332349
não tenho certeza, o ideal mesmo seria migrar para ADO, mas como vc não tem tempo, posso sugerir o seguinte

antes do update crie um sleect para localizar o registro a ser alterado.

depois de o update

GFASSIO 20/01/2010 09:00:09
#332375
Olá Marcelo, obrigado pela atenção!
Então, mas eu faço um select antes, eu seleciono o registro e ai sim Edito.

é muito estranho, pois se eu alterar um ponto que seja já num dá problema...

O que eu poderia fazer ?


Obs.: Quando vcs criam tabela no MySql, o type delas vc colocam qual opção? eu estou colocando InnoDB. Está certo?
E o Character Set eu coloco Latin1.

abraços
WEBMASTER 20/01/2010 10:32:09
#332384
xiiii....pula fora.
nao da para garantir que .edit funcione, eh melhor usar update table....
GFASSIO 20/01/2010 10:36:20
#332386
Nossa WebMaster num faz isso comigo não, tá tudo funcionando certinho inclusive o .Edit ele só não funciona quando não altero nada no cadastro.
Sei que ADO seria o ideal mas por agora é impossível eu mudar TUDO para ADO.

Abraços
MARCELO.TREZE 20/01/2010 11:11:05
#332388
posta o codigo completo inclusive a parte que vc faz o select para mostrarmos como fazer a alteração sem muita mudança
GFASSIO 20/01/2010 11:30:41
#332389
Set Tabela = BD.OpenRecordset([Ô]SELECT * FROM ctr_ven WHERE CODIGO=[ô][Ô] + txtFields(0).Text + [Ô][ô][Ô], dbOpenDynaset)
Tabela.Edit
Tabela!nome = txtFields(1).Text
Tabela!endereco = txtFields(2).Text
Tabela!bairro = txtFields(3).Text
Tabela!cidade = txtFields(4).Text
Tabela!CEP = txtFields(5).Text
Tabela!rg = txtFields(6).Text
Tabela!CPF = txtFields(7).Text
Tabela!comissao = IIf(txtFields(8).Text = [Ô][Ô], 0, txtFields(8).Text)
Tabela!Senha = Text5.Text
Tabela([Ô]tipo[Ô]) = IIf(OptUsuario.Value = True, [Ô]U[Ô], [Ô]A[Ô]) [ô][Ô]U[Ô] de Usuáro, [Ô]A[Ô] de Administrador
Tabela([Ô]estado[Ô]) = ComboEstado.Text
Tabela.Update [txt-color=#007100]Se algum dos campos acima tiver o valor alterado não dá erro, mas se não alterar nenhum dá erro[/txt-color]

Obrigado pela atenção
MARCELO.TREZE 20/01/2010 11:45:04
#332391
veja se isto resolve

subistitua o código acima por este e veja se funciona

BD.OpenRecordset [Ô]UPDATE ctr_ven SET nome=[ô][Ô] & txtFields(1).Text & [Ô][ô],endereco=[ô][Ô] & txtFields(2).Text & [Ô][ô],bairro=[ô][Ô] & txtFields(3).Text & [Ô][ô],cidade=[ô][Ô] & txtFields(4).Text & [Ô][ô],cep=[ô][Ô] & txtFields(5).Text & [Ô][ô],rg=[ô][Ô] & txtFields(6).Text & [Ô][ô],cpf=[ô][Ô] & txtFields(7).Text & [Ô][ô],comissao=[ô][Ô] & txtFields(8).Text & [Ô][ô],senha=[ô][Ô] & Text5.Text & [Ô][ô],tipo=[ô][Ô] & IIf(OptUsuario.Value = True, [Ô]U[Ô], [Ô]A[Ô]) & [Ô][ô],estado=[ô][Ô] & ComboEstado.Text & [Ô][ô] WHERE codigo =[ô][Ô] & txtFields(0).Text & [Ô][ô][Ô], dbOpenDynaset


SINKERTEC 20/01/2010 12:08:19
#332392

Caso o código do Marcelão n funfar...o q desacredito faça isso:

Sua tabela tem um indice de código né? caso n tenha, crie e faça o código

Tabela.Index = [Ô]IndiceCódigo[Ô] [ô] Coloque o Nome que vc deu ao indice no Access
Tabela.Seek [Ô]=[Ô], txtFields(0).Text

If Tabela.NoMatch = True msgbox [Ô]Erro ao Encontrar Registro[Ô]

Tabela.Edit
Tabela!nome = txtFields(1).Text
Tabela!endereco = txtFields(2).Text
Tabela!bairro = txtFields(3).Text
Tabela!cidade = txtFields(4).Text
Tabela!CEP = txtFields(5).Text
Tabela!rg = txtFields(6).Text
Tabela!CPF = txtFields(7).Text
Tabela!comissao = IIf(txtFields(8).Text = [Ô][Ô], 0, txtFields(8).Text)
Tabela!Senha = Text5.Text
Tabela([Ô]tipo[Ô]) = IIf(OptUsuario.Value = True, [Ô]U[Ô], [Ô]A[Ô]) [ô][Ô]U[Ô] de Usuáro, [Ô]A[Ô] de Administrador
Tabela([Ô]estado[Ô]) = ComboEstado.Text
Tabela.Update Se algum dos campos acima tiver o valor alterado não dá erro, mas se não alterar nenhum dá erro

Boa sorte!
Página 1 de 3 [21 registro(s)]
Tópico encerrado , respostas não são mais permitidas