Problemas DM.IBTable1.Edit
Boa noite!
Porque todas as vezes e uso o "DM.IBTable1.Edit;", ele só altera a primeira linha do banco? exemplo:
aqui seria como esta minha tabela.
[img]http://arquivo.devmedia.com.br/forum/imagem/444757-20150915-182949.png[/img]
Porque todas as vezes e uso o "DM.IBTable1.Edit;", ele só altera a primeira linha do banco? exemplo:
DM.IBTable1.Edit;
DM.IBTable1.FieldByName('Cont_id').AsString:= edt1.text;DM.IBTable1.FieldByName('Cont_nome').AsString:= edt2.text;DM.IBTable1.FieldByName('Cont_Usuario').AsString:= edt3.text;DM.IBTable1.FieldByName('Cont_maquina').AsString:= edt4.text;aqui seria como esta minha tabela.
[img]http://arquivo.devmedia.com.br/forum/imagem/444757-20150915-182949.png[/img]
Rodrigo Carlos
Curtidas 0
Respostas
Ricardo Araujo
15/09/2015
o dataset trabalha em apenas uma registro, seria bando unidirecional , se quiser atualizar vários Registros de uma vez terá que usa SQL puro.
GOSTEI 0
Fabio Cardoso
15/09/2015
qual seu objetivo? Atualizar uma linha do banco aleatória onde vc escolhe a linha e altera ou esses parâmetros todos devem ser replicados na tabela toda?
Se for localizar um linha no banco use :
AGORA, se for
para que estes dados fiquem repetidos na tabela todam você pode colocar um tquery no seu form
e fazer tipo abaixo:
Espero ter ajudado!
Se for localizar um linha no banco use :
if DM.IBTable1.Locate('NOME_CAMPO_A_PESQUISAR', EdtLocalizar.Text, []) then
begin
DM.IBTable1.Edit;
DM.IBTable1.FieldByName('Cont_id').AsString:= edt1.text;
DM.IBTable1.FieldByName('Cont_nome').AsString:= edt2.text;
DM.IBTable1.FieldByName('Cont_Usuario').AsString:= edt3.text;
DM.IBTable1.FieldByName('Cont_maquina').AsString:= edt4.text;
end;AGORA, se for
para que estes dados fiquem repetidos na tabela todam você pode colocar um tquery no seu form
e fazer tipo abaixo:
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s:= 'UPDATE TABELA SET Cont_id = :P1, Cont_nome= :P2 ;'
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(S);
Query1.ParamByName('P1').AsString := edt1.text;
Query1.ParamByName('P2').AsString := edt2.text;
try
Query1.ExecSQL;
except on
e:exception do
begin
showmessage(e.Message);
abort;
end;
end;
end;
Espero ter ajudado!
GOSTEI 0
Rodrigo Carlos
15/09/2015
Oi bom dia!
Desculpe a demora em responder, deu certo desta forma:
DM.IBTable1.Locate('NOME_CAMPO_A_PESQUISAR', EdtLocalizar.Text, []);
DM.IBTable1.Edit;
DM.IBTable1.FieldByName('Cont_id').AsString:= edt1.text;
Muito obrigado pela ajuda.
Desculpe a demora em responder, deu certo desta forma:
DM.IBTable1.Locate('NOME_CAMPO_A_PESQUISAR', EdtLocalizar.Text, []);
DM.IBTable1.Edit;
DM.IBTable1.FieldByName('Cont_id').AsString:= edt1.text;
Muito obrigado pela ajuda.
GOSTEI 0
Fabio Cardoso
15/09/2015
ok, qualquer coisa manda ai se eu puder ajudar Estou as ordens!
GOSTEI 0
Rodrigo Carlos
15/09/2015
Brigadão Fabio, valeu mesmo.
GOSTEI 0
Ricardo Araujo
15/09/2015
precisando de alguma coisa so falar...
GOSTEI 0