Parâmetros do Locate gerando erros...

06/03/2006

E aí, pessoal. Estou precisando de uma força.

Estou trabalhando com Access 2000 e ADO. Estou acessando uma tabela com dois campos (Código: autonumeração, e Nome: String). Coloquei os componentes ADOConnection, ADOTable e DataSource em um DataModule. O DataModule não está sendo criado automaticamente. Ele está sendo criado no evento OnCreate do formulário, e a abertura da tabela também (na propriedade IndexFieldNames da tabela estou usando um índice chamado ´Nome´, para ajudar ordenar na Grid):

dm := Tdm.Create(Self);
dm.tblAlunos.Open;

Na linha de pesquisa abaixo é que está dando o erro:

btnOK.Enabled := dm.tblAlunos.Locate(´Nome´,edNome.Text,[loCaseInsensitive,loPartialKey]);

Os erros gerados são:

Undeclared Identifier: ´loCaseInsensitive´
Undeclared Identifier: ´loPartialKey´
Incompatible Types: ´TLocaleOption´ and ´Integer´

Quando uso os componentes diretamente em um formulário tudo funciona perfeitamente.

Alguém tem alguma idéia de onde está o erro ?

Obrigado...


Adalberto

Respostas

06/03/2006

Sremulador

talvez de vc fizer assim funcione
if dm.tblAlunos.Locate(´Nome´,edNome.Text,[loCaseInsensitive,loPartialKey]) then ...


Responder Citar

07/03/2006

Aroldo Zanela

Colega,

Declare [b:1c5ad70253]DB [/b:1c5ad70253]na lista de uses de seus formulário.


Responder Citar

07/03/2006

Paullsoftware

Não seria mais simples suar um AdoQuery e ver se retorna algum valor na pesquisa tipo:

TAdoQuery = Qy

With Qy do
begin
Close;
SQL.Clear;
SQL.Add(´Select * From Tabela Where CampoString Starting With =:Param´);
Prepare;
Params[0&93;.Value := Edit1.Text;
Open;
BtnOk.Enable := IsEmpy;
end;


é só uma ideia.. :wink:


Responder Citar

07/03/2006

Adalberto

[quote:0e5578ec66=´Aroldo Zanela´]Colega,

Declare [b:0e5578ec66]DB [/b:0e5578ec66]na lista de uses de seus formulário.[/quote:0e5578ec66]


Valeu, Aroldo !!! Sua dica deu certo...

Muito obrigado...


Responder Citar