Fórum Comandos sql no delphi são direfentes??? #215137
18/02/2004
0
É o seguinte...
Eu tenho um programinha para executar comandos SQL no meu banco. Tem um pessoal aqui que recebe os scripts sql prontos, a única coisa q eles fazem é copiar o texto para o campo (no caso o memo.text) no programa e mandam executar.
O q eu faço para executar o comando digitado nessa memo é:
query.SQL.add(memo.text);
query.open;
só q me parece q existem comando q o programa não está aceitando... como por exemplo, o update, delete...
Então a minha dúvida é: A forma de executar estes comando é diferente dentro do delphi??? Tenho certeza q vcs já passaram por esse problema. Como vcs resolveram???
Existe algo q eu possa fazer???
Agradeço a todos!
Bueno
Curtir tópico
+ 0Posts
18/02/2004
Bueno
Alguém sabe o q pode estar ocorrendo???
try statusbar1.panels[0].text:=´Executando script...´; screen.cursor := crSQLWait; cursor:=crSQLwait; query.close; query.active:=false; query.sql.Clear; query.SQL.add(memo.text); query.open; query.active:=true; cursor:=crdefault; screen.cursor := crDefault; statusbar1.panels[0].text:=´Script executado com sucesso!´; except statusbar1.panels[0].text:=´Ocorreu algum erro ao executar o script!´; end; cursor:=crdefault; screen.cursor := crDefault; end else begin messagebox(form1.handle,´Não existe script para ser executado.´,´ATENÇÃO´,0+0+64); memo.setfocus; exit; end;
Gostei + 0
18/02/2004
Fabio.hc
[b:4f28706554]query.ExecSQL;[/b:4f28706554]
no lugar de query.open;
Gostei + 0
18/02/2004
Bueno
Por favor, você ou alguém teria alguma sugestão para corrigir este problema???
if memo.text <> ´´ then begin try statusbar1.panels[0].text:=´Executando script...´; screen.cursor := crSQLWait; cursor:=crSQLwait; query.close; query.active:=false; query.sql.Clear; query.SQL.add(memo.text); query.active:=true; query.Execsql; cursor:=crdefault; screen.cursor := crDefault; statusbar1.panels[0].text:=´Script executado com sucesso!´; except statusbar1.panels[0].text:=´Ocorreu algum erro ao executar o script!´; end; cursor:=crdefault; screen.cursor := crDefault; end else begin messagebox(form1.handle,´Não existe script para ser executado.´,´ATENÇÃO´,0+0+64); memo.setfocus; exit; end;
C eu fizer isso por exemplo: [b:bbfc2e0afd]insert into tabela (campo_1) values (´x´)[/b:bbfc2e0afd] e mandar rodar, acontece a escessão na minha rotina, Pode ser a rotina o problema???
Gostei + 0
18/02/2004
Dbergkamps
Gostei + 0
18/02/2004
Andremuller
e troquei o query.SQL.add(memo.text)
para SqlDataSet.CommandText:= memo.text já que eu usei DbExpress
e o script rodou legal.
Mas como o outro colega disse, tu deve cuidar se o comando a ser executado é query.Open ou query.ExecSQL.
Espero ter ajudado,
Falou.
Gostei + 0
18/02/2004
Bueno
Havia me esquecido desse detalhe do ExecSQL.
Eu não sabia q era desnecessário o active... hehe
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)