sql statement doesnt return rows

06/09/2016

0

Pessoal preciso muito da ajuda d vcs
eu coloco este comando:
With dmDados.qryMaterial do
Begin
Close;
Sql.clear;
Sql.add('UPDATE MAN_TAB_MATERIAL SET');
SQL.ADD('ESTOQUE = ESTOQUE + '+floattostr(dmDados.qryItemsICMS1.value));
SQL.ADD('WHERE CODIGO = '+inttostr(Jig));
Clipboard.AsText := SQL.Text;
ExecSQL;
dmDados.qryItems.Next;
end;
dmdados.IBCTransaction1.CommitRetaining;

funciona perfeitamente, mas qdo eu abro a tabela de material
aparece essa mensagem: 'sql statement doesn't return rows'
ai eu tenho q reeiniciar o sistema p poder abrir,
alguem pode me ajudar?
fico muito agradecido
Paulo Borges

Paulo Borges

Responder

Post mais votado

06/09/2016

Ao iniciar uma nova venda.
dmDados.qryMaterial.close
dmDados.qryMaterial.sql.clear;
dmDados.qryMaterial.sql.text:='select * from suatabeladematerial';

Ai sim você pode realizar o open
dmDados.qryMaterial.open;

Pois, ao realizar o update ficaram resíduos e ao tentar abrir o dmDados.qryMaterial.sql que tem lá está o update

se quiser conferir pode realizar o showmessa(dmDados.qryMaterial.sql.text);
ele retornará os dados do update.

Raimundo Pereira

Raimundo Pereira
Responder

Mais Posts

06/09/2016

Paulo Borges

e ai turma me ajudem, vlw
Responder

06/09/2016

Paulo Borges

pq eu dou um update e
nao consigo abrir a tabela de material?
aparacendo esta mensagem?
Responder

06/09/2016

Luiz Santos

Paulo, tem como você passar mais detalhes?
Por exemplo, o banco que está usando.

Você diz que funciona.
Será que funciona mesmo, ou simplesmente não da erro?

Já tentou verificar como está sendo montada a sua stringSQL?

Abs
Responder

06/09/2016

Raimundo Pereira

Brother,

Este erro acontece após usar "Open" em uma query,sustende-se que irá retornar registros, como se fosse um "select" por exemplo.

No caso do "Update" não é retornado nenhum registro, apenas é enviado ao banco um comando de atualização.
Debug o seu código e verifique se não está realizando um open após realizar ExecSQL;

Caso precise realizar o open deverá limpar o Sql anterior que é referente ao update.

Se for isso que ocorreu,espero que ajude.
Posta o feed back ai.
Abrç
Responder

06/09/2016

Paulo Borges

eu estou usando firebird 2.1,
o update funciona na tabela material,
ai eu vou fazer outra venda, (pq abre a tabela material)
e aparece este erro.
ai se quiser usar esta tabela eu tenho q fechar o sistema e abrir de
novo.
Responder

06/09/2016

Paulo Borges

este é o comando:
With dmDados.qryMaterial do
Begin
Close;
Sql.clear;
Sql.add('UPDATE MAN_TAB_MATERIAL SET');
SQL.ADD('ESTOQUE = ESTOQUE + '+floattostr(dmDados.qryItemsICMS1.value));
SQL.ADD('WHERE CODIGO = '+inttostr(Jig));
ExecSQL;
end;
Responder

06/09/2016

Raimundo Pereira

Paulo,
Veja isso
ai eu vou fazer outra venda, (pq abre a tabela material)
e aparece este erro.
ai se quiser usar esta tabela eu tenho q fechar o sistema e abrir.

Mais anteriormente você realizou um update.

Porém ficou resíduos do update.
With dmDados.qryMaterial do
Begin
Close;
Sql.clear;
Sql.add('UPDATE MAN_TAB_MATERIAL SET');
SQL.ADD('ESTOQUE = ESTOQUE + '+floattostr(dmDados.qryItemsICMS1.value));
SQL.ADD('WHERE CODIGO = '+inttostr(Jig));
Clipboard.AsText := SQL.Text;

Ai você tenta realizar um open, ao tentar fazer nova venda, ele vai apresentar o erro.
ao realizar nova venda você deve
dmDados.qryMaterial.close;
dmDados.qryMaterial.sql.clear;

dmDados.qryMaterial.sql.text:='select * from suatabela de material';
ai sim você realiza o open
dmDados.qryMaterial.open;
Responder

06/09/2016

Paulo Borges

Amigo, agora sim, funcionou perfeitamente,
muito obrigado. valeu mesmo, ótimo
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar