Solved

records dated after today delphi

Posted on 2014-03-24
13
358 Views
Last Modified: 2014-03-24
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.held, 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!
0
Comment
Question by:ClaytonGlass
13 Comments
 
LVL 24

Expert Comment

by:jimyX
ID: 39950015
Which Database you are using?
0
 

Author Comment

by:ClaytonGlass
ID: 39950025
Paradox 7-11
0
 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 39950026
what error do you get?
0
Active Directory Webinar

We all know we need to protect and secure our privileges, but where to start? Join Experts Exchange and ManageEngine on Tuesday, April 11, 2017 10:00 AM PDT to learn how to track and secure privileged users in Active Directory.

 
LVL 14

Accepted Solution

by:
Pierre Cornelius earned 250 total points
ID: 39950046
You should use a parameter and set that before opening. In order for me to give example, I need to know of what type is Query2. Is it a TQuery?

Your sql should have something like:
WHERE  (D.Delivered >:ADate)

If you are using TQuery, you could set using
Query1.ParamByName('ADate').Value:= Date;
0
 

Author Comment

by:ClaytonGlass
ID: 39950057
Thanks everybody!
It is a TQuery reading a Paradox database .THe error message is 'invalid use of keyword. Token:Date))
0
 
LVL 14

Expert Comment

by:Pierre Cornelius
ID: 39950065
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.
0
 

Author Comment

by:ClaytonGlass
ID: 39950090
Thank you very much! That has worked. Is it possible to set an end date, such as today +7 for the next week?
0
 

Author Closing Comment

by:ClaytonGlass
ID: 39950093
Thank you very much Pierre! And thanks to the other contributors, too.
0
 
LVL 14

Expert Comment

by:Pierre Cornelius
ID: 39950096
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;
0
 

Author Comment

by:ClaytonGlass
ID: 39950112
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.
0
 
LVL 14

Expert Comment

by:Pierre Cornelius
ID: 39950229
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;
0
 

Author Comment

by:ClaytonGlass
ID: 39950265
Thank you very much, Pierre. AsDate works.
0
 
LVL 14

Expert Comment

by:Pierre Cornelius
ID: 39950296
Glad to help. Good luck.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

828 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question