Eduardo,

Vc pode alterar para que a tua função verifique o parametro (valor). Se
contiver o % então é String..

ex.:  Descricao:=ExibeDescricao('Alias', 'Tabela', 'CampoChave',
'CampoDescricao', '%teste%', 'Tipo');
        ou
       Descricao:=ExibeDescricao('Alias', 'Tabela', 'CampoChave',
'CampoDescricao', '123456', 'Tipo');


function ExibeDescricao(Alias, Tabela, CampoChave, CampoDescricao, Valor,
Tipo: String): String;
var
   qryAux: TQuery;
begin
   Result := '';
   try
      if Valor <> '' then
      begin
         qryAux := TQuery.Create(nil);
         qryAux.DataBaseName := Alias;
         qryAux.Close;
         qryAux.Sql.Clear;
         qryAux.Sql.Add('SELECT ' + CampoChave + ',' + CampoDescricao);
         qryAux.Sql.Add('  FROM ' + Tabela);
         if Pos('%', Valor)<>0 then
              qryAux.Sql.Add(' WHERE ' + CampoChave + ' like ' + Chr(39) +
Valor + Chr(39))
         else
            qryAux.Sql.Add(' WHERE ' + CampoChave + ' = ' + Valor);
         qryAux.Open;
         if qryAux.IsEmpty then
            Messagebox(Application.handle,'Valor não encontrado
!','Atenção',MB_OK or MB_ICONWARNING)
         else
            Result := qryAux.FieldByName(CampoDescricao).AsString;
      end;
   finally
      qryAux.Free;
   end;
end;



----- Original Message ----- 
From: "Eduardo Silva ®" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, September 22, 2004 1:06 PM
Subject: [delphi-br] Duvida para fazer função


    Salve galera.
    Galera, tenho a função abaixo que eu uso para exibir a descrição de um
valor string da tabela através de um campo chave.
    Meu problema é que se eu uso na chave valores integer a função ta legal,
mas se eu usar campos chave do tipo string eu tenho que colocar o nome da
tabela e alterar a linha de programação (if (Tabela = 'SINS0104') or (Tabela
= 'SINS0304') then).
    O que eu gostaria era de colocar uma coisa generica, independente do
campo chave ser integer ou string e fazer a pesquisa.
    Alguém pode me dar uma mão ?
    Obrigado desde já.






-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 

Responder a