[firebase-br] Algum problema com esse Select?

Kléber Caneva kdcc em terra.com.br
Qui Ago 24 11:11:27 -03 2006


As data quando conectadas tem que estar entre apostrofes. Dê preferencia 
para o uso de parametros senão terá que usar o Quotedstr para a dAta tb.

[]´s

Kléber Caneva


----- Original Message ----- 
From: "Fabiano" <fabiano_programador em yahoo.com.br>
To: <lista em firebase.com.br>
Sent: Wednesday, August 23, 2006 4:08 PM
Subject: [firebase-br] Algum problema com esse Select?


Prezados,

To desenvolvendo uma aplicação com Delphi7+DBExpress+Firebird.
Criei um relatório com o Rave, na propriedade ComandText do ClientDataSet 
coloquei o seguinte:
SELECT * FROM CLIENTE C, VISITA V
WHERE (C.CLI_CODIGO = V.CLI_CODIGO)

E no botão da minha tela de pesquisa para gerar o relatório está assim:

procedure TFrmRelVisitas.BitBtn1Click(Sender: TObject);
var
vDataIni,
vDataFim : string;
begin
vDataIni := Quotedstr(FormatDateTime('dd.mm.yyyy', DateTimePicker1.Date));
vDataFim := Quotedstr(FormatDateTime('dd.mm.yyyy', DateTimePicker2.Date));

DmRelatorio.cdsRelatorio.Close;

Case CBCampoPesquisa.ItemIndex of
0: Begin
DmRelatorio.cdsRelatorio.CommandText :=
'select *' +
'from cliente c, visita v where c.cli_identidade = ' 
+Quotedstr(EdIdentidade.Text) +
' and v.vis_data between '+ vDataIni + ' and ' + vDataFim +
' and c.cli_codigo = v.cli_codigo order by v.vis_data';
DmRelatorio.cdsRelatorio.Open;
End;
1: Begin
DmRelatorio.cdsRelatorio.CommandText :=
'select *' +
'from cliente c, visita v where c.cli_nome Like ' 
+Quotedstr('%'+EdIdentidade.Text+'%') +
' and v.vis_data between '+ vDataIni + ' and ' + vDataFim +
' and c.cli_codigo = v.cli_codigo order by v.vis_data';
DmRelatorio.cdsRelatorio.Open;
End;
End;

  If not DmRelatorio.cdsRelatorio.IsEmpty Then
Begin
DmPrincipal.RvCtrlVisita.Open;
DmPrincipal.RvCtrlVisita.Execute;
DmPrincipal.RvCtrlVisita.Close;
End
Else
Application.MessageBox('Nenhum registro encontrado!', 'Atenção!', MB_OK 
+MB_ICONINFORMATION);
end;

  Mas na hora em que o relatório é gerado, está ocorrendo algo estranho. 
Ex.: Se eu pesquisar por identidade e informar uma identidade inexistente, e 
informar uma data que não esteja entre a inicial e a final ,o codigo 
funciona corretamente e é passada a mensagem de que Nenhum registro foi 
localizado. Agora se eu informar uma identidade e colacar a data correta 
entre a inicial e a final, o relatório é gerado com todos os registros do 
banco(não obedecendo o que foi informado na consulta). O curioso é que tenho 
o mesmo código na parte de Pesquisa e lá está funcionando perfeitamente.
  Alguem já passou por isso?


---------------------------------
 Você quer respostas para suas perguntas? Ou você sabe muito e quer 
compartilhar seu conhecimento? Experimente o Yahoo! Respostas!
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa

E-mail classificado pelo Identificador de Spam Inteligente Terra.
Para alterar a categoria classificada, visite
http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=kdcc&_l=1,1156361869.306810.13110.vacoas.hst.terra.com.br,5636,Des15,Des15

Esta mensagem foi verificada pelo E-mail Protegido Terra.
Scan engine: McAfee VirusScan / Atualizado em 23/08/2006 / Versão: 
4.4.00/4836
Proteja o seu e-mail Terra: http://mail.terra.com.br/








Mais detalhes sobre a lista de discussão lista