RES: [delphi-br] Duvida para fazer função

2004-09-22 Por tôpico Eduardo Silva ®
O problema é que eu não passo % para o valor e sim números ou letras.e
eu não consegui ver como eu colocaria esses % no valor.
  -Mensagem original-
  De: Prisma Sistemas - Moacir [mailto:[EMAIL PROTECTED]
  Enviada em: quarta-feira, 22 de setembro de 2004 13:29
  Para: [EMAIL PROTECTED]
  Assunto: Re: [delphi-br] Duvida para fazer função


  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]



Yahoo! Grupos, um serviço oferecido por:




--
  Links do Yahoo! Grupos

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

b.. Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo!.



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.749 / Virus Database: 501 - Release Date: 01/09/2004


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



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

 



Re: RES: [delphi-br] Duvida para fazer função

2004-09-22 Por tôpico Nielsen Cassiano Simões
  Tente assim:

function ExibeDescricao(Alias, Tabela, CampoChave, CampoDescricao, Valor,
Tipo: String; Numerico: Boolean): 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 Numerico 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;

  Porque na hora da chamada da função você sabe se o campo chave é
numérico ou não. Acho que isso resolve seu problema.


  Nielsen


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