[firebase-br] RES: SQL

José Otávio Lussari tavinhol em gmail.com
Sex Abr 15 10:06:22 -03 2011


Obrigado por responder amigo! Vc poderia por gentileza me dar um pequeno exemplo de como vc faz no OnSetText da chave primaria?
Estou meio confuso... quero comparar com o que eu faço aqui para ver se é exatamente o que vc está falando... Veja um exemplo do que eu faço:

procedure TDMOS.DataSetOSID_CLIENTESetText(Sender: TField; const Text: String);
var Query: TpFIBQuery;
begin
   Sender.AsString:= Text;
   If Text <> '' then begin
      Query:= TpFIBQuery.Create(Self);
      try
         with Query do begin
            Database:= DMGeral.FIBDatabase;
            Transaction:= DMGeral.FIBTransactionRead;
            SQL.Text:= 'SELECT RAZAO FROM CLIFOR ' +
                       'WHERE STATUS = ' +  QuotedStr('Sim') + ' ' +
                       'AND CLIENTE = ' + QuotedStr('X') + ' ' +
                       'AND ID_CLIFOR = :ID';
            ExecWP([Text]);

            If not(Eof) then DataSetOSRAZAO.AsString:= Query.FieldByName('RAZAO').Asstring
            else begin
               DataSetOSRAZAO.Clear;
               Mensagem:= 'Código de cliente não cadastrado!';
               TfrmMensagens.MensagemForm(Mensagem, 'C',[mbOk], False);
               DataSetOSID_CLIENTE.FocusControl;               
            end;
         end;
      finally
         FreeAndNil(Query);
      end;
   end;
end;

atenciosamente,

[ ]’s
José Otávio Lussari
Analista de Sistemas
Bel. em Sistemas de Informação


> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
> nome de Tecnobyte Informática
> Enviada em: sexta-feira, 15 de abril de 2011 09:59
> Para: FireBase
> Assunto: Re: [firebase-br] SQL
> 
> Bom dia
> 
> Geralmente faço da seguinte forma:
> 
> - No SELECT faço JOINs para carregar os dados relacionados quando o DataSet
> for aberto.
> - No evento OnSetText da chave estrangeira, trato de buscar os dados
> relacionados e atribuir aos respectivos campos do DataSet principal.
> - Se em vez de digitar o usuário fizer uma pesquisa para selecionar o item
> desejado, pego os dados selecionados e atribuo aos respectivos campos do
> DataSet principal.
> 
> Não vejo outra forma de ficar melhor!
> 
> Atenciosamente.
> 
> Daniel P. Guimarães
> Tecnobyte Informática
> www.tecnobyte.com.br
> 
> -----Mensagem Original-----
> From: José Otávio Lussari
> Sent: Friday, April 15, 2011 8:22 AM
> To: 'FireBase'
> Subject: [firebase-br] SQL
> 
> (Uso D7, Firebird 1.5, FIBPlus).
> 
> 
> 
> Pessoal, tenho uma duvida em performance e gostaria da opinião de vocês se
> possível...
> 
> Estou desenvolvendo uma tela, onde existem várias chaves estrangeiras! A
> minha duvida, é a seguinte:
> 
> 
> 
> Nessas chaves estrangeiras, gostaria de colocar a informação referente a
> essa chave na frente. A pergunta é a seguinte:
> 
> Qual a forma mais indicada:
> 
> 
> 
> - Colocar TPanel’s e através de uma SQL com vários JOIN’s informar no
> onchange do meu datasource;
> 
> 
> 
> ou
> 
> 
> 
> - Deixar uma SQL simples no meu DataSet e pegar essas informações das chaves
> estrangeiras através do evento OnSetText dos Fields?
> 
> 
> 
> - Se eu optar pela primeira opção vou ter uma SQL complexa com vários Joins,
> 
> - Se eu optar pela segunda opção vou ter uma SQL mais simplificada, porem
> será efetuada varias consultas (Selects) pequenas para preencher a
> informação das chaves estrangeiras...
> 
> 
> 
> Espero não ter sido confuso na minha explicação.
> 
> Agradeço a atenção e espero poder contar com alguma opinião... muito
> obrigado pessoall.
> 
> 
> 
> atenciosamente,
> 
> 
> 
> [ ]’s
> José Otávio Lussari
> Analista de Sistemas
> 
> Bel. em Sistemas de Informação
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista