Apagar registros DElphi
Olá.
Tenho um aplicativo simples em C++ Borland que usa o ZEOS.
Transcreví as mesmas funções para Delphi mas não estou conseguindo apagar os dados.
A rotina é:
No programa em C++,essas linhas dão conta do recado(só que com a síntese C++),ja no Delphi os registros são apagados mas se eu abrir o programa novamente eles'' voltam'',isto é,não está apagando no banco.
Alguma sugestão?
Tenho um aplicativo simples em C++ Borland que usa o ZEOS.
Transcreví as mesmas funções para Delphi mas não estou conseguindo apagar os dados.
A rotina é:
DataModule2.ZQuery1.Close; DataModule2.ZQuery1.SQL.Clear; DataModule2.ZQuery1.SQL.Append(''delete from SAMSUNG''); DataModule2.ZQuery1.SQL.Append(''where CODIGOS = (''+QuotedStr(Str)+ '')''); DataModule2.ZQuery1.ExecSQL; Application.MessageBox(''O dado foi excluido com sucesso'',''*Aviso*'',MB_ICONHAND+ MB_OK);
No programa em C++,essas linhas dão conta do recado(só que com a síntese C++),ja no Delphi os registros são apagados mas se eu abrir o programa novamente eles'' voltam'',isto é,não está apagando no banco.
Alguma sugestão?
Vtrx
Curtidas 0
Respostas
William
29/03/2013
Tente assim:
DataModule2.ZQuery1.Close; DataModule2.ZQuery1.SQL.Clear; DataModule2.ZQuery1.SQL.Add('delete from SAMSUNG'); DataModule2.ZQuery1.SQL.Add('where CODIGOS = ' + QuotedStr(Str)); DataModule2.ZQuery1.ExecSQL; Application.MessageBox('O dado foi excluido com sucesso','*Aviso*',MB_ICONHAND+ MB_OK);
GOSTEI 0
Vtrx
29/03/2013
Não resolveu,eu não estou entendendo.
GOSTEI 0
William
29/03/2013
Colega acabei de testar esse mesmo código na minha máquina, usando uma base dados no Firebird 2.5 e funcionou normalmente!
Qual o tipo desse campo "CODIGOS" (VARCHAR ou INTEGER)?
Qual SGBD vc está usando?
Qual o tipo desse campo "CODIGOS" (VARCHAR ou INTEGER)?
Qual SGBD vc está usando?
GOSTEI 0
Vtrx
29/03/2013
Conseguí a solução assim:
DataModule2.ZQuery1.SQL.Clear; DataModule2.ZQuery1.SQL.Add('delete from SAMSUNG'); DataModule2.ZQuery1.SQL.Append('where CODIGOS = ('+QuotedStr(Str)+')'); DataModule2.ZQuery1.ExecSQL; DataModule2.ZConnection1.Commit; Application.MessageBox('O dado foi excluido com sucesso','*Aviso*',MB_ICONHAND+ MB_OK);
GOSTEI 0
William
29/03/2013
Imagino que a propriedade AutoCommit do seu ZConnection esteja setada para FALSE então!
Normalmente ela vem como TRUE e não é necessário esse comando commit explícito.
Normalmente ela vem como TRUE e não é necessário esse comando commit explícito.
GOSTEI 0
Vtrx
29/03/2013
Pois é,as vezes eu acho que ja conheço o suficiente e sempre falta algo.
Obrigado pela ajuda pois me incentivou que estava no caminho ceeto para achar o erro.
Obrigado pela ajuda pois me incentivou que estava no caminho ceeto para achar o erro.
GOSTEI 0
Vtrx
29/03/2013
Oque me confubdiu foi que o aplicativo em C++ o zeos esta setado igualmente como esta no Delphi e mesmo assim 'commitou'...
GOSTEI 0
William
29/03/2013
Disponha pela ajuda, estou finalizando o tópico!
Qualquer dúvida estamos por aí ....
Qualquer dúvida estamos por aí ....
GOSTEI 0