Usando locate no ADO

Delphi

20/06/2003

No paradox usava isso:


procedure TForm1.Tabela2BeforeDelete(DataSet: TDataSet);
var
 atual: integer;
begin
 Tabela1.FindKey([´Produto´]);
 Tabela1.Edit;
 atual:= Tabela1quant.asInteger;
 Tabela1quant.value:= atual + Tabela2Quant.Value;
 Tabela1.Post;
 end;
end.


Como usar esse mesmo metodo no ado? locate??

Agradeço! :lol:


Njunior

Njunior

Curtidas 0

Respostas

Carlosrm

Carlosrm

20/06/2003

NJunior,

Sua resposta está na própria pergunta. Sim, deve usar Locate(). Porém, para que o Locate() funcione no Delphi 6, é necessário acrescentar a unit Variants, na cláusula uses. Se não estiver incluída em uses, será necessário incluir manualmente a unit DB também.
Uses Windows, ... Variants, DB;

No lugar de FindKey(), para o ADO use Locate()

Tabela1.Locate(´Tab1Prod´, produto, []);

Se for uma pesquisa em mais de um campo ao mesmo tempo, faça:

Tabela1.Locate(´Tab1Prod : Tab1Saldo´ , VarArrayOf( [produto, 36] ); [] );

Locate pesquisa independentemente de o(s) campo(s) estar(em) indexado(s). Em campos indexados a pesquisa EM GERAL é mais rápida.
Exceção: dataset com poucos itens ou quando o item procurado está entre os primeiros).

Tab1Prod e Tab1Saldo são nomes de campos da tabela a pesquisar.
Observe que entre os campos a serem pesquisados a separação se faz com ponto e vírgula.

Se não ajudou, espero não ter atrapalhado. carlosrm :wink:


GOSTEI 0
POSTAR