Ajuda - Busca - Membros - Calendário
Versão Completa: TLocateOptions SearchOptions no Delphi
Fórum Script Brasil > Programação & Desenvolvimento > Delphi, Kylix
skynerd
Boa Noite a todos.

Programo a algum tempo em C++ Builder 5 e estou migrando para o Delphi 2010 da Embarcadero e gostaria de saber se alguém do Forum pode me ajudar neste tópico.

Estou fazendo uma aplicação em Delphi e em uma das minhas telas, preciso pesquisar o código do cliente digitado no Edit1.Text e apresentar o resto dos dados nos Edits restantes... no C++ eu utilizava a linha de código abaixo.

Gostaria de saber se no Delphi existe um método mais fácil de se posicionar o banco de dados para fazer esta pesquisa "Sem utilizar comandos SQL Query ou DBGrid". (mais se existir um comando melhor em SQL, beleza!)

Segue abaixo o comando em C++ que posiciona o banco de dados no registro desejado e apresenta o resto dos dados.

TLocateOptions SearchOptions;
SearchOptions.Clear();
SearchOptions << loPartialKey;

if(DataModule2->IBTable1->Locate("codigo",Edit1->Text,SearchOptions))
{
Edit1->Text = DataModule2->IBTable1->FieldByName("codigo")->AsString;
Edit2->Text = DataModule2->IBTable1->FieldByName("descricao")->AsString;
ComboBox1->Text = DataModule2->IBTable1->FieldByName("classificacao")->AsString;
ComboBox2->Text = DataModule2->IBTable1->FieldByName("autor")->AsString;
ComboBox3->Text = DataModule2->IBTable1->FieldByName("chave")->AsString;
MaskEdit5->Text = DataModule2->IBTable1->FieldByName("data")->AsString;
Memo1->Lines->Add(DataModule2->IBTable1->FieldByName("historico")->AsString);
Image1->Picture = DBImage1->Picture;
}

Ainda não testei mudar o (-> do C++) para ( . no Delphi ) na rotina acima, pois não sei se existe um outro método no Delphi.

OBS: Estou utilizando um banco de dados GDB Interbase gerado pelo IBExpert.


Se existir um outro método gostaria de saber.

Obrigado pela atenção de todos.
Jhonas
QUOTE
Ainda não testei mudar o (-> do C++) para ( . no Delphi ) na rotina acima, pois não sei se existe um outro método no Delphi.


voce pode procurar na net um conversor de C++ para delphi ou usar o método manual

if(DataModule2->IBTable1->Locate("codigo",Edit1->Text,SearchOptions))

no delphi ficaria:

if DataModule2.IBTable1.Locate('codigo', Edit1.Text, []);


Edit1->Text = DataModule2->IBTable1->FieldByName("codigo")->AsString;

no delphi

Edit1.Text := DataModule2.IBTable1.FieldByName('codigo').AsString;

abraço
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.