Cascudo! Select usando data do MonthCalendar (ADO/MSAccess)

Delphi

02/06/2004

Amigos,
Tavez você possa me ajudar?! :?
Estou montando uma tela tipo MSOutlook onde ao clicar no dia é visualizado os compromissos relacionados. Estou usando um banco Access e ADO. O problema é o seguinte nos dias abaixo de 12 (12/05 ou 09/07) a ADOQuery não funciona!!!
Veja o código:
Código:

procedure TF_AgComp.MC_CompromissoClick(Sender: TObject); 
begin 
[color=orange]Ed_AgData.Text:=FormatDateTime(´dd/mm/yyyy´,MC_Compromisso.Date); [/color]
DM_Banco.Q_Agenda.close; 
Dm_Banco.Q_Agenda.sql.Clear; 
DM_Banco.Q_Agenda.SQL.Add(´Select * from Agenda where AgData=´[color=orange]+Ed_AgData.Text+[/color]´ Order by AgHora´); 
DM_Banco.Q_Agenda.open; 
end; 



Grato,
Cfino.


Cfino

Cfino

Curtidas 0

Respostas

Bon Jovi

Bon Jovi

02/06/2004

Acho q Access não tem uma função 100¬ segura pra converter data em string pra data em datetime. Não uso Access pra aplicações multiusuário e CDATE é seguro no caso de monousuário. Pelo menos nunca testei acessando remotamente, se a formatação de data vale a do micro cliente ou do servidor.

Ex. CDATE:
var
  StrData: string;
begin
  StrData := FormatDateTime(ShortDateFormat, MC_Compromisso.Date);
  Q_Agenda.SQL.Text := 
    ´Select * from Agenda ´ + 
    ´where AgData = CDATE(´ + StrData  + ´) ´ + 
    ´Order by AgHora´;
end;


Embora chato, o mais ´certo´ seria usar TParameters.


GOSTEI 0
Cfino

Cfino

02/06/2004

Valeu pela dica vou tentar usar!
A questão de usar Tparameters é que não entendi muito bem seu funcionamento e por isso tenho um pouco de dificuldade. Inclusive tentei nesse caso mas não saiu nada!!! :oops:

Grato,
Cfino.


GOSTEI 0
Cfino

Cfino

02/06/2004

Na verdade Caro Bon Jovi quando acrescento o comando CDATE no Select ele para de funcionar!!!

Se tiver outra idéia agradeço,
Cfino.


GOSTEI 0
Bon Jovi

Bon Jovi

02/06/2004

Esqueci de colocar o QuotedStr

´where AgData = CDATE(´ + QuotedStr(StrData) + ´) ´ +

Se tiver guardando hora junto com a data em AgData, tem q fazer o seguinte:

´Select * from Agenda ´ +
´where AgData >= CDATE(´ + QuotedStr(StrData) + ´) ´ +
´and AgData <= CDATE(´ + QuotedStr(StrData + ´ 23:59:59´) + ´) ´ +
´Order by AgHora´;


GOSTEI 0
Cfino

Cfino

02/06/2004

Valeu cara!!! Já virei seu fã!!!

Obrigado pela ajuda,
Cfino.


GOSTEI 0
POSTAR