Fantasma_Recon Postado Maio 9, 2009 Denunciar Share Postado Maio 9, 2009 Ajuda com Update direto na ibqueryOLÁ AMIGOS TENHO UMA IBQUERY DE NOME CADASTRO E GOSTARIA DE ATUALIZAR OS DADOS OU ALTERAR E SALVAR EM TEMPO DE EXEXUÇAO TÁ! FIZ ISTO MAS SO EM DOIS CAMPOS , MAS GOSTARIA DE ALTERAR E ATUALIZAR QUALQUER UM DOS CAMPOS !!!PEÇO! POR GENTILEZA AJUDA DE TODOS !!! DESDE já AGRADEÇO!!!SEGE O CODIGOprocedure TManutencao.FormShow(Sender: TObject);beginedit2.Text:= form2.CADASTRO.FIELDBYNAME('COD').AsString;edit3.Text:= form2.CADASTRO.FIELDBYNAME('PRODUTO').AsString;edit4.Text:= form2.CADASTRO.FIELDBYNAME('VALOR').AsString;edit5.Text:= form2.CADASTRO.FIELDBYNAME('FORNECEDOR').AsString;edit6.Text:= form2.CADASTRO.FIELDBYNAME('QUANTIDADENAPRATELEIRA').AsString;edit7.Text:= form2.CADASTRO.FIELDBYNAME('CAIXASEMESTOQUE').AsString;edit8.Text:= form2.CADASTRO.FIELDBYNAME('VALOREMESTOQUE').AsString;MASKedit1.Text:= FORM2.CADASTRO.FIELDBYNAME'DATADOCADASTRODOPRODUTO').AsString;end;procedure TManutencao.BitBtn1Click(Sender: TObject);begintryform2.CADASTRO.sql.Clear;form2.CADASTRO.sql.text := 'update codigo set valor = + ' + edit4.text + ' where cod = ' + edit2.text;form2.CADASTRO.Open;dm.Transacao.Commit;edit1.Clear;{este codigo so atualiza/altera os campos valor e cod}{gostaria de alaterar qualquer um dos campos }Except On E:Exception doBeginApplication.MessageBox( Pchar('Algum usuário está "TRAVANDO" o REGISTRO ATUAL'+#13+#13+'ERRO : "'+ E.Message +'" ;' ),'Impossível ALTERAR', MB_Ok);EXIT; // Sai de uma “possível procedure” }DM.TraNSACAO.COMMIT;FORM2.CADASTRO.Refresh;EDIT1.Clear;END;End;END;procedure TManutencao.Edit1Change(Sender: TObject);beginFORM2.cadastro.Close;FORM2.cadastro.sql.clear;FORM2.cadastro.sql.add('select * from codigo WHERE cod LIKE' +QUOTEDSTR('%' + edit1.Text + '%'));FORM2.cadastro.Open;end; Mais ou menos assim !!!with form2.CADASTRO dobeginClose;SQL.Clear;SQL.Add('UPDATE codigo SET cod = + '+ edit2.Text+ ',');SQL.Add(' produto = + ' + edit3.text + ',');SQL.Add(' valor = + ' + edit4.Text+ ',');SQL.Add(' fornecedor = + ' + edit5.text + ',');SQL.Add('quantidadenaprateleira = + ' + edit6.text + ',');SQL.Add(' caixasemestoque = + ' + edit7.text + ',');SQL.Add(' valoremestoque = + ' + edit8.text + ',');SQL.Add('where datadocadastrodoproduto = + ' + MasKedit1.text + ';');open;edit1.Clear;end;Except On E:Exception doBeginApplication.MessageBox( Pchar('Algum usuário está "TRAVANDO" o REGISTRO ATUAL'+#13+#13+'ERRO : "'+ E.Message +'" ;' ),'Impossível ALTERAR', MB_Ok);EXIT; // Sai de uma “possível procedure” }DM.TraNSACAO.COMMIT;FORM2.CADASTRO.Refresh;EDIT1.Clear;END;End;END;so que este codigo não altera !!! o codigo anterior altera somente dois campos!!!Obrigado!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Maio 11, 2009 Denunciar Share Postado Maio 11, 2009 procedure TManutencao.BitBtn1Click(Sender: TObject); begin try form2.CADASTRO.sql.Clear; form2.CADASTRO.sql.text := 'update codigo set valor = + ' + edit4.text + ' where cod = ' + edit2.text; form2.CADASTRO.Open; dm.Transacao.Commit; edit1.Clear; {este codigo so atualiza/altera os campos valor e cod} {gostaria de alaterar qualquer um dos campos } Except On E:Exception do Begin Application.MessageBox( Pchar('Algum usuário está "TRAVANDO" o REGISTRO ATUAL'+#13+#13+ 'ERRO : "'+ E.Message +'";' ), 'Impossível ALTERAR', MB_Ok); EXIT; // Sai de uma “possível procedure” } DM.TraNSACAO.COMMIT; FORM2.CADASTRO.Refresh; EDIT1.Clear; END; End; END; Primeiro sugiro não utilizar este tipo de coisa Application.MessageBox( Pchar('Algum usuário está "TRAVANDO" o REGISTRO ATUAL'+#13+#13+ 'ERRO : "'+ E.Message +'" ;' ), 'Impossível ALTERAR', MB_Ok); Hoje é inadimissível travar um registro o codigo anterior altera somente dois campos!!! voce pode alterar mais de um campo ou todos exemplo: // usando parametros SQL.Append('UPDATE customer set cust_no=:cust_no, customer=:customer, contact_first=:contact, phone_no=:phone, city=:city where cust_no=:cust_no'); // usando edits SQL.AAppend('UPDATE customer set cust_no=' + Edit1.Text + ', customer= '+ Edit2.Text + ' , contact_first= ' + Edit3.Text + ', phone_no= ' + Edit4.text + ', city= ' + Edit5.text + ' where cust_no= ' + Edit1.text);Outras informações:http://www.delphibr.com.br/artigos/delphiweb1.phphttp://www.scribd.com/doc/6943122/BancoDeD...rebird-Exemplosabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Fantasma_Recon
Ajuda com Update direto na ibquery
OLÁ AMIGOS TENHO UMA IBQUERY DE NOME CADASTRO E GOSTARIA DE ATUALIZAR OS DADOS OU ALTERAR E SALVAR EM TEMPO DE EXEXUÇAO TÁ! FIZ ISTO MAS SO EM DOIS
CAMPOS , MAS GOSTARIA DE ALTERAR E ATUALIZAR QUALQUER UM DOS CAMPOS !!!
PEÇO! POR GENTILEZA AJUDA DE TODOS !!! DESDE já AGRADEÇO!!!
SEGE O CODIGO
procedure TManutencao.FormShow(Sender: TObject);
begin
edit2.Text:= form2.CADASTRO.FIELDBYNAME('COD').AsString;
edit3.Text:= form2.CADASTRO.FIELDBYNAME('PRODUTO').AsString;
edit4.Text:= form2.CADASTRO.FIELDBYNAME('VALOR').AsString;
edit5.Text:= form2.CADASTRO.FIELDBYNAME('FORNECEDOR').AsString;
edit6.Text:= form2.CADASTRO.FIELDBYNAME('QUANTIDADENAPRATELEIRA').AsString;
edit7.Text:= form2.CADASTRO.FIELDBYNAME('CAIXASEMESTOQUE').AsString;
edit8.Text:= form2.CADASTRO.FIELDBYNAME('VALOREMESTOQUE').AsString;
MASKedit1.Text:= FORM2.CADASTRO.FIELDBYNAME'DATADOCADASTRODOPRODUTO').AsString;
end;
procedure TManutencao.BitBtn1Click(Sender: TObject);
begin
try
form2.CADASTRO.sql.Clear;
form2.CADASTRO.sql.text := 'update codigo set valor = + ' + edit4.text + ' where cod = ' + edit2.text;
form2.CADASTRO.Open;
dm.Transacao.Commit;
edit1.Clear;
{este codigo so atualiza/altera os campos valor e cod}
{gostaria de alaterar qualquer um dos campos }
Except On E:Exception do
Begin
Application.MessageBox( Pchar('Algum usuário está "TRAVANDO" o REGISTRO ATUAL'+#13+#13+
'ERRO : "'+ E.Message +'" ;' ),
'Impossível ALTERAR', MB_Ok);
EXIT; // Sai de uma “possível procedure” }
DM.TraNSACAO.COMMIT;
FORM2.CADASTRO.Refresh;
EDIT1.Clear;
END;
End;
END;
procedure TManutencao.Edit1Change(Sender: TObject);
begin
FORM2.cadastro.Close;
FORM2.cadastro.sql.clear;
FORM2.cadastro.sql.add('select * from codigo WHERE cod LIKE' +QUOTEDSTR('%' + edit1.Text + '%'));
FORM2.cadastro.Open;
end;
Mais ou menos assim !!!
with form2.CADASTRO do
begin
Close;
SQL.Clear;
SQL.Add('UPDATE codigo SET cod = + '+ edit2.Text+ ',');
SQL.Add(' produto = + ' + edit3.text + ',');
SQL.Add(' valor = + ' + edit4.Text+ ',');
SQL.Add(' fornecedor = + ' + edit5.text + ',');
SQL.Add('quantidadenaprateleira = + ' + edit6.text + ',');
SQL.Add(' caixasemestoque = + ' + edit7.text + ',');
SQL.Add(' valoremestoque = + ' + edit8.text + ',');
SQL.Add('where datadocadastrodoproduto = + ' + MasKedit1.text + ';');
open;
edit1.Clear;
end;
Except On E:Exception do
Begin
Application.MessageBox( Pchar('Algum usuário está "TRAVANDO" o REGISTRO ATUAL'+#13+#13+
'ERRO : "'+ E.Message +'" ;' ),
'Impossível ALTERAR', MB_Ok);
EXIT; // Sai de uma “possível procedure” }
DM.TraNSACAO.COMMIT;
FORM2.CADASTRO.Refresh;
EDIT1.Clear;
END;
End;
END;
so que este codigo não altera !!! o codigo anterior altera somente dois campos!!!
Obrigado!!!
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.