sql statement doesnt return rows
06/09/2016
0
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
Post mais votado
06/09/2016
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
Mais Posts
06/09/2016
Paulo Borges
nao consigo abrir a tabela de material?
aparacendo esta mensagem?
06/09/2016
Luiz Santos
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
06/09/2016
Raimundo Pereira
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ç
06/09/2016
Paulo Borges
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.
06/09/2016
Paulo Borges
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;
06/09/2016
Raimundo Pereira
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;
06/09/2016
Paulo Borges
muito obrigado. valeu mesmo, ótimo
Clique aqui para fazer login e interagir na Comunidade :)