Comandos sql no delphi são direfentes???
Fala Galera!
É 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!
É 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
Curtidas 0
Respostas
Bueno
18/02/2004
Para não deixar dúvidas, aí está o código do botão para executar o script.
Alguém sabe o q pode estar ocorrendo???
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
Fabio.hc
18/02/2004
SQL com Insert, Update e Delete:
[b:4f28706554]query.ExecSQL;[/b:4f28706554]
no lugar de query.open;
[b:4f28706554]query.ExecSQL;[/b:4f28706554]
no lugar de query.open;
GOSTEI 0
Bueno
18/02/2004
Fábio, continuo com o mesmo problema. Dê uma olhada no meu código. Eu utilizo componentes da paleta ADO. Será q ter a ver???
Por favor, você ou alguém teria alguma sugestão para corrigir este problema???
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???
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
Dbergkamps
18/02/2004
Pode ser só um erro de digitação mas ao invés de memo.text o correto não seria memo.lines?
GOSTEI 0
Andremuller
18/02/2004
Eu copiei o teu script retirei os query.active que são desnecessários
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.
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
Bueno
18/02/2004
Valew galera!
Havia me esquecido desse detalhe do ExecSQL.
Eu não sabia q era desnecessário o active... hehe
Havia me esquecido desse detalhe do ExecSQL.
Eu não sabia q era desnecessário o active... hehe
GOSTEI 0