cursor not returned from query
Boa Tarde !!
Ja fiz varias pesquisas no forum mas não achei nenhuma solução mais concreta sobre este assunto.
Estou usando D7 + DBExpress + Firebird 2.0
Para as minhas pesquisas eu uso o commandtext do clientdataset com parametros. Até hoje estava funcionando tudo OK até eu começar a usar o comando UPDATE no CDS, sempre na hora de ativar o CDS ele gera a seguinte mensagem de erro:
cursor not returned from query
Tanto usando o componente QUERY (dbx) quanto o CDS ele gera este erro. Ja foi sugerido para deixar tudo em maiusculo, mas não houve sucesso, e outras tentativas sem sucesso.
No console do IBEXPERT por exemplo eu executo o comando e ele funciona perfeitamente, mas na hora de jogar no DELPHI..morreu....
Se alguem puder dar uma luz....eu agradeço muito...........
Abraços.
Ja fiz varias pesquisas no forum mas não achei nenhuma solução mais concreta sobre este assunto.
Estou usando D7 + DBExpress + Firebird 2.0
Para as minhas pesquisas eu uso o commandtext do clientdataset com parametros. Até hoje estava funcionando tudo OK até eu começar a usar o comando UPDATE no CDS, sempre na hora de ativar o CDS ele gera a seguinte mensagem de erro:
cursor not returned from query
Tanto usando o componente QUERY (dbx) quanto o CDS ele gera este erro. Ja foi sugerido para deixar tudo em maiusculo, mas não houve sucesso, e outras tentativas sem sucesso.
No console do IBEXPERT por exemplo eu executo o comando e ele funciona perfeitamente, mas na hora de jogar no DELPHI..morreu....
Se alguem puder dar uma luz....eu agradeço muito...........
Abraços.
Badboysjc
Curtidas 0
Respostas
Badboysjc
24/10/2008
Boa Tarde !!
Ja fiz varias pesquisas no forum mas não achei nenhuma solução mais concreta sobre este assunto.
Estou usando D7 + DBExpress + Firebird 2.0
Para as minhas pesquisas eu uso o commandtext do clientdataset com parametros. Até hoje estava funcionando tudo OK até eu começar a usar o comando UPDATE no CDS, sempre na hora de ativar o CDS ele gera a seguinte mensagem de erro:
cursor not returned from query
Tanto usando o componente QUERY (dbx) quanto o CDS ele gera este erro. Ja foi sugerido para deixar tudo em maiusculo, mas não houve sucesso, e outras tentativas sem sucesso.
No console do IBEXPERT por exemplo eu executo o comando e ele funciona perfeitamente, mas na hora de jogar no DELPHI..morreu....
Se alguem puder dar uma luz....eu agradeço muito...........
Abraços.
UP
GOSTEI 0
Emerson Nascimento
24/10/2008
comandos DML devem ser executados, e não abertos.
use
.Execute ou
.ExecSQL
.Open serve apenas para [b:e478e332ae]select[/b:e478e332ae]
use
.Execute ou
.ExecSQL
.Open serve apenas para [b:e478e332ae]select[/b:e478e332ae]
GOSTEI 0
Badboysjc
24/10/2008
comandos DML devem ser executados, e não abertos.
use
.Execute ou
.ExecSQL
.Open serve apenas para [b:8ded288beb]select[/b:8ded288beb]
Caro Emerson, Boa Tarde !!
estou usando da seguinte forma.
with dmprincipal.sqlqryClientes do
Begin
sqlqry.close;
sqlqry.sql.clear;
sqlqry.sql.add(´update set clientes status =´T´ where bairro =:pbairro´)
sqlqry.ExecSQL
end;
Ainda continua o erro.
Se puder dar uma força obrigado.
Abraços.
GOSTEI 0
Martins
24/10/2008
[quote:4029ec2956=´emerson.en´]comandos DML devem ser executados, e não abertos.
use
.Execute ou
.ExecSQL
.Open serve apenas para [b:4029ec2956]select[/b:4029ec2956]
Caro Emerson, Boa Tarde !!
estou usando da seguinte forma.
with dmprincipal.sqlqryClientes do
Begin
sqlqry.close;
sqlqry.sql.clear;
sqlqry.sql.add(´update set clientes status =´T´ where bairro =:pbairro´)
sqlqry.ExecSQL
end;
Ainda continua o erro.
Se puder dar uma força obrigado.
Abraços.[/quote:4029ec2956]
Já tentou assim:
with dmprincipal.sqlqryClientes do Begin sqlqry.close; sqlqry.sql.clear; sqlqry.sql.add(´UPDATE CLIENTES SET STATUS =´T´ WHERE BAIRRO =:PBAIRRO´) sqlqry.ExecSQL end;
Boa sorte.
GOSTEI 0
Emerson Nascimento
24/10/2008
[quote:e747394bab=´emerson.en´]comandos DML devem ser executados, e não abertos.
use
.Execute ou
.ExecSQL
.Open serve apenas para [b:e747394bab]select[/b:e747394bab]
Caro Emerson, Boa Tarde !!
estou usando da seguinte forma.
with dmprincipal.sqlqryClientes do
Begin
sqlqry.close;
sqlqry.sql.clear;
sqlqry.sql.add(´update set clientes status =´T´ where bairro =:pbairro´)
sqlqry.ExecSQL
end;
Ainda continua o erro.
Se puder dar uma força obrigado.
Abraços.[/quote:e747394bab]
você está usando um parâmetro (pbairro) mas não o está preenchendo. outra coisa, já observada pelo Martins: a sintaxe está errada.
deveria ser assim:
with dmprincipal.sqlqryClientes do Begin sqlqry.close; sqlqry.sql.clear; sqlqry.sql.add(´update CLIENTES set status =´T´ where bairro =:pbairro´) sqlqry.params.parambyname(´pbairro´).asstring := BAIRRO_DESEJADO; //** falta esta linha**// sqlqry.ExecSQL; end;
GOSTEI 0
Badboysjc
24/10/2008
[quote:8021504602=´badboysjc´][quote:8021504602=´emerson.en´]comandos DML devem ser executados, e não abertos.
use
.Execute ou
.ExecSQL
.Open serve apenas para [b:8021504602]select[/b:8021504602]
Caro Emerson, Boa Tarde !!
estou usando da seguinte forma.
with dmprincipal.sqlqryClientes do
Begin
sqlqry.close;
sqlqry.sql.clear;
sqlqry.sql.add(´update set clientes status =´T´ where bairro =:pbairro´)
sqlqry.ExecSQL
end;
Ainda continua o erro.
Se puder dar uma força obrigado.
Abraços.[/quote:8021504602]
você está usando um parâmetro (pbairro) mas não o está preenchendo. outra coisa, já observada pelo Martins: a sintaxe está errada.
deveria ser assim:
with dmprincipal.sqlqryClientes do Begin sqlqry.close; sqlqry.sql.clear; sqlqry.sql.add(´update CLIENTES set status =´T´ where bairro =:pbairro´) sqlqry.params.parambyname(´pbairro´).asstring := BAIRRO_DESEJADO; //** falta esta linha**// sqlqry.ExecSQL; end;
Valeu amigos !!
Estava faltando o parametro. e só pra finalizarmos de vez, tem como SETAR dos campos ao mesmo tempo com um UPDATE, que eu pesquisei e me perdi, que não tinha usado ainda este comando.
Obrigado e Abraços ao dois.
GOSTEI 0
Emerson Nascimento
24/10/2008
setar 2 campos ao mesmo tempo?
tem sim:
tem sim:
with dmprincipal.sqlqryClientes do Begin sqlqry.close; sqlqry.sql.clear; sqlqry.sql.add(´update CLIENTES set status =´T´, distancia = 30 where bairro =:pbairro´) sqlqry.params.parambyname(´pbairro´).asstring := BAIRRO_DESEJADO; //** falta esta linha**// sqlqry.ExecSQL; end;
GOSTEI 0
Badboysjc
24/10/2008
setar 2 campos ao mesmo tempo?
tem sim:
with dmprincipal.sqlqryClientes do Begin sqlqry.close; sqlqry.sql.clear; sqlqry.sql.add(´update CLIENTES set status =´T´, distancia = 30 where bairro =:pbairro´) sqlqry.params.parambyname(´pbairro´).asstring := BAIRRO_DESEJADO; //** falta esta linha**// sqlqry.ExecSQL; end;
Obrigado,grande Emerson !!
Me ajudou pra caramba, até a próxima.
Abraços.
GOSTEI 0