A tabela não encontra o fim e não atualiza

06/04/2006

0

Me ajude neste loop, pelo visto esta tudo certo, mas não consigo chegar ao fim do arquvo e fazer o apply

[color=red:69b3039d3a]procedure TForm1.BitBtn1Click(Sender: TObject);
var
nome, vCod : string;
cont : integer;
begin
nome := ´´;
cont := 0;
sds1.IndexFieldNames := ´Descricao´;
SDS2.IndexFieldNames := ´produto´;
SDS2.First;
TD.TransactionID := 1;
TD.IsolationLevel := XILReadCommitted;
sqlco.StartTransaction(TD) ;
while not sds2.Eof do
begin
nome := sds2.fieldByName(´produto´).AsString;
if Nome <> ´´ then
begin
sds1.Locate(´descricao´,nome,[loCaseInsensitive, loPartialKey]);
IF SDS1.FieldByName(´DESCRICAO´).AsString = nome then
begin
vCod := sds1.fieldByname(´Codigo´).AsString;
sds2.Edit;
sds2.FieldByName(´produto´).AsString := vcod;
sds2.Post;
end;
end;
nome := ´´;
cont := cont+1;
label1.Caption := inttostr(cont);
sds2.Next;
end;
sds2.ApplyUpdates(0);
sqlco.Commit(TD);
end;[/color:69b3039d3a]


Dpinho

Dpinho

Responder

Posts

07/04/2006

Cpd_arim

procedure TForm1.BitBtn1Click(Sender: TObject);
var
nome, vCod : string;
cont : integer;
begin
nome := ´´;
cont := 0;
sds1.IndexFieldNames := ´Descricao´;
SDS2.IndexFieldNames := ´produto´;
SDS2.First;
TD.TransactionID := 1;
TD.IsolationLevel := XILReadCommitted;
sqlco.StartTransaction(TD) ;
while not sds2.Eof do//verifica se a tabela nao esta no final
begin
nome := sds2.fieldByName(´produto´).AsString;
if Nome <> ´´ then //nome <> de ´´
begin
sds1.Locate(´descricao´,nome,[loCaseInsensitive, loPartialKey]);
IF SDS1.FieldByName(´DESCRICAO´).AsString = nome then
begin
vCod := sds1.fieldByname(´Codigo´).AsString;
sds2.Edit;
sds2.FieldByName(´produto´).AsString := vcod;
sds2.Post;
end;
////se não me engano esta faltando um else ou se nome = ´´ sds2.next
Pense nisso


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