Richard Teasdale
asked on
records dated after today delphi
HI:
I am struggling to write a delphi program that reads orders delivered after today.
The query works fine for all records but I am struggling to set the parameter 'today'
Here is the query:
""Query2.SQL.Clear;
Query2.SQL.Add('SELECT DISTINCT D.DocNo,D.OrderNo, D.Ordered, D.Delivered,D.InvNo, D.Invoiced, D.AccNo, D.CRef,D.Items, D.Area,D.goods,D.Nett, D.VAT,D.SurchargeRate, D.SurchargeVal,D.State,D.h eld, 99 as roof ' );
Query2.SQL.Add(' FROM "GOOrders.DB" D WHERE (D.Delivered >Date()) ORDER BY D.Delivered, D.AccNo');
Query2.Open;""
It is the 'D.Delivered > Date()' that I cannot get.
Does anybody know how to set this, please?
Thanks!
I am struggling to write a delphi program that reads orders delivered after today.
The query works fine for all records but I am struggling to set the parameter 'today'
Here is the query:
""Query2.SQL.Clear;
Query2.SQL.Add('SELECT DISTINCT D.DocNo,D.OrderNo, D.Ordered, D.Delivered,D.InvNo, D.Invoiced, D.AccNo, D.CRef,D.Items, D.Area,D.goods,D.Nett, D.VAT,D.SurchargeRate, D.SurchargeVal,D.State,D.h
Query2.SQL.Add(' FROM "GOOrders.DB" D WHERE (D.Delivered >Date()) ORDER BY D.Delivered, D.AccNo');
Query2.Open;""
It is the 'D.Delivered > Date()' that I cannot get.
Does anybody know how to set this, please?
Thanks!
Which Database you are using?
ASKER
Paradox 7-11
what error do you get?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks everybody!
It is a TQuery reading a Paradox database .THe error message is 'invalid use of keyword. Token:Date))
It is a TQuery reading a Paradox database .THe error message is 'invalid use of keyword. Token:Date))
Don't use :Date, it is reserved word.
Use :ADate
or :Today
what follows the : is the name of the param and is what you should use in ParamByName.
Use :ADate
or :Today
what follows the : is the name of the param and is what you should use in ParamByName.
ASKER
Thank you very much! That has worked. Is it possible to set an end date, such as today +7 for the next week?
ASKER
Thank you very much Pierre! And thanks to the other contributors, too.
You can set the date param to whatever you like. In delphi dates, the day is the integral part and time the fractional part, so to set to next week, you could use:
Query1.ParamByName('ADate' ).Value:= Date+7;
Query1.ParamByName('ADate'
ASKER
Thanks again Pierre - you get the points for a great answer; however the '+7' gives a type mismatch. I can resubmit as a new question if you prefer.
You're welcome.
try:
Query1.ParamByName('ADate' ).AsDate:= Date+7;
If still fails, perhaps you should set the param type:
Query1.ParamByName('ADate' ).DataType := ftDateTime;
try:
Query1.ParamByName('ADate'
If still fails, perhaps you should set the param type:
Query1.ParamByName('ADate'
ASKER
Thank you very much, Pierre. AsDate works.
Glad to help. Good luck.