Milene,

Por que vc não usa um DBComboBox para armazenar as informações antes de
enviar para o banco ?

Exemplo:

Var
QueryGeral            : TADOQuery;
begin
  DBCombobox1.Enabled := True;
  QueryGeral:= Nil;
  QueryGeral  := TADOQuery.Create(QueryGeral);
  QueryGeral.Connection := Tabelas.ADOConnSGI;
  QueryGeral.Sql.Add('select codigo from tabela');
  QueryGeral.Sql.Add('order by codigo');
  QueryGeral.Open;
  DBCombobox1.Items.Clear;
  while not QueryGeral.eof do
  begin
    DBCombobox1.AddItem(QueryGeral.FieldbyName('codigo').Value,Self);
    QueryGeral.Next;
   end;
end;

A pesquisa fica muito mais rápida creio eu, experimente o código acima e
veja se resolve o seu problema.


Em 29/01/07, Milene <[EMAIL PROTECTED]> escreveu:
>
>   Olá,
>
> tenho uma aplicação com Firebird e configurei corretamente minha
> DBLookUpComboBox, logo ela grava corretamente.
>
> Contudo preciso fazer uma busca rápida no clique dela e se não
> encontrar o registro fazer um Insert, só que não quero perder o valor
> dela e de outra, então armazeno numa variável temporária e após o
> insert jogo de volta os dados nelas.
>
> Essa parte funciona bem quando faço:
>
> a:=DBLookupComboBox1.ListSource.DataSet.FieldByName('CODIGO').Value;
> DataSourceEstoque.DataSet.Insert;
> DBLookupComboBox1.KeyValue:=a;
>
> Ele restaura bem o valor na combo, mas na hora de gravar ele grava
> vazio(<null>) no banco.
>
> Sinto que falta colocar o CODIGO em mais algum lugar, contudo não o
> acho.
>
> Desde já, agradeço a atenção de todos!
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]

Reply via email to