Ir para conteúdo
Fórum Script Brasil
  • 0

TLocateOptions SearchOptions no Delphi


skynerd

Pergunta

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.

Editado por skynerd
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
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

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...