Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

srnalim

Atualizar base do firebird com componentes da interbase

Recommended Posts

Bom dia galera novamente estou me matando de novo pois nao consigo atualizar dados no firebird com ibquery veja um exemplo de como ta o meu codigo. nao atualiza nem a pohada.

var
d1,d2,d3: string;
begin
  {aqui tenho um loop e uma query pegando dados de uma bd}
  d1:= ibquery.fieldbyname('NomeDoCampo').asstring;

  //agora tento atualizar assim
  ibquery2.sql.clear;
  ibquery2.close;
  ibquery2.sql.add('SELECT IV_PRODUTO,IV_SALDOPOS FROM CONVERT WHERE IV_PRODUTO = "'+d1+'"');
  ibquery2.open;

  if ibquery2.rowsaffected = 1 then
     begin
      showmessage('ok');
     end

  {aqui termina o loop}
end

esse @#$%& não atualizar kkkkk alguém help-me.

aqui estava fazendo um loop desnecessário na outra duvida mas quanto a isso ja dei jeito agora eu preciso atualizar os dados dessa tabela com os dados recebidos da outra por exemplo:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigos.

 

Não seria por isso:

 

Você está recebendo na variável d1:

d1:= ibquery.fieldbyname('NomeDoCampo').asstring;

 

E está passando pra sua query como d5:

ibquery2.sql.add('SELECT IV_PRODUTO,IV_SALDOPOS FROM CONVERT WHERE IV_PRODUTO = "'+d5+'"');

 

É isso mesmo?

 

Até a próxima. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa eu passei errado nao é um SELECT e sim um UPDATE que eu to fazendo nesse sql ai e ele nao atualiza os dados da tabela pelo menos eu nao vejo essa atualização acontecer no dbgrid.

 

faz um UPDATE TABELA SET CODBARRA = '+cod+' WHERE = "'+d1+'"';

esse d1 recebe os dados de um select com o fieldbyname entende.

 

basicamente isso mas a atualização não é feita nem a pancada. ja tentei todos componentes da interbase.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

 

faz um UPDATE TABELA SET CODBARRA = '+cod+' WHERE = "'+d1+'"';

 

O d1 está vindo alimentado com algo semelhante a isso por exemplo: 'CODIGO=1'?

 

Depois da instrução WHERE, tem que vir a coluna que impõe a condição junto do valor dessa condição.

 

Qual o conteúdo dentro da variável d1?

 

Até a próxima. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja como está

 

ibquery3.SQL.Clear;
      ibquery3.Close;
      ibquery3.SQL.Add('SELECT IV_PRODUTO,IV_SALDOPOS FROM CONVERT WHERE IV_PRODUTO = "'+d5+'"');
      ibquery3.Open;
      d3:= ibquery3.FieldByName('IV_SALDOPOS').AsString;
      memo1.Lines.Add(d5+'  -> '+d3);
      codbarra:= ibquery3.FieldByName('IV_PRODUTO').AsString;
      

      //atualiza dados do firebird
      ibquery4.Close;
      ibquery4.SQL.Clear;
      ibquery4.sql.TEXT:='UPDATE C000025 SET ESTOQUE ='+d3+' WHERE CODBARRA = "'+codbarra+'"';
      ibquery4.Open;
      ibquery4.ExecSQL;
      dbgrid1.Refresh;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

Experimente isso:


//atualiza dados do firebird

ibquery4.Close; ibquery4.SQL.Clear; ibquery4.sql.TEXT:='UPDATE C000025 SET ESTOQUE = :ESTOQUE WHERE CODBARRA = :CODBARRA'; ibquery4.Params[0].AsString := d3;ibquery4.Params[1].AsString := codbarra;ibquery4.ExecSQL; dbgrid1.Refresh;

Até a próxima. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora pioro kkkkk fui mecher aqui os dados do meu dbgrid mostra somente quando estou no modo edição com o delphi quando eu do f9 pra compilar e executar ele nao mostra nada nos dbgrids sabe o que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

O seu DBGrid está ligado a essa mesma ibquery4 ou é outra?

 

Até a próxima. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.