James/Mike
The parameter is created when the onchange event of the SQL property fires
and
if parses the SQL, The advantages of using parameters (over just embedding
them in the SQL Text)
is that is is more efficient if you execute the query multiple times as the
BDE et al compile the
query and leave a place marker for the parameter which is then passed to the
database engine
before the query is executed, I have had similar problems (it a long time
ago now). The other
main advantage with a 'date' parameter is that you don't have to worry about
the format (it seems
every sql engine expects a different format)
I've always got confused about prepare so..
Things i'd suggest
1/ Try calling prepare before setting the param
ie.
Close;
SQL.LoadFromFile('DocNos.SQL');
Prepare;
ParamByName('SaveDate').AsDate := CurrentDate;
Open;
MainForm.Memo.Lines.Add('Done');
2/ Check that the param exists! and that it is of the correct type
When you consider what the DBE does it assumes that the parameter is of the
same type
as the field it is 'expressed' against, As is all aumptions this is liable
to error
ie.
Close;
SQL.LoadFromFile('DocNos.SQL');
Prepare;
try
ParamByName('SaveDate').AsDate := CurrentDate;
try
Open;
except
// unable to exec query
end
except
// unable to set param
end
MainForm.Memo.Lines.Add('Done');
HTH
Neven
----- Original Message -----
From: James Low <[EMAIL PROTECTED]>
To: Multiple recipients of list delphi <[EMAIL PROTECTED]>
Sent: Wednesday, 30 May 2001 16:11
Subject: RE: [DUG]: SQL and Parameters
> Maybe it cannot find an object because the query has NO parameters (I
cannot
> see where your code creates one). So maybe you need to add (using
> CreateParam or otherwise) a Param Object to the datsets Params (with the
> name "SaveDate", type Output (I think), ftdate) - before you call prepare.
>
> -----Original Message-----
> From: Mark Howard [mailto:[EMAIL PROTECTED]]
> Sent: 30 May 2001 15:41
> To: Multiple recipients of list delphi
> Subject: Re: [DUG]: SQL and Parameters
>
>
> Mike
> Have tried this change, now. No better. I assume the question about
Short
> Date Format is only relevant while I am using the DateToStr format?
> I think there must be something quitye fundamental, that I have not passed
> on to you guys.
> I assume that I can use a vanilla TQuery with no properties set; and that
> setting the ParamByName is ALL I need to. (I have also tried
> Params[0].AsDate := CurrentDate.)
> Is there some other fundamental aspect that I may not be aware of?
> Mark
>
>
> ----- Original Message -----
> From: Mike <mailto:[EMAIL PROTECTED]> Osborne
> To: Multiple <mailto:[EMAIL PROTECTED]> recipients of list delphi
> Sent: Wednesday, May 30, 2001 3:22 PM
> Subject: Re: [DUG]: SQL and Parameters
>
> Mark
> Have you tried -
> ParamByName('SaveDate').AsDate := CurrentDate;
> as opposed to
> ParamByName('SaveDate').AsString := DateToStr(CurrentDate);
>
> What is your Short Date Format - dd/mm/yy or mm/dd/yy?
> DateToStr may not be giving you a valid date for SQL
> Why you would get "could not find object", I don't know.
>
> HTH
> Mike
>
>
> ----- Original Message -----
> From: Mark <mailto:[EMAIL PROTECTED]> Howard
> To: Multiple <mailto:[EMAIL PROTECTED]> recipients of list delphi
> Sent: Wednesday, May 30, 2001 10:03 AM
> Subject: [DUG]: SQL and Parameters
>
>
> Hi
>
> Using Paradox.
>
> When I run the following SQL code (DocNos.Sql) using the LoadFromFile
> method, things work fine;
>
> Delete from DocketNos
> Where DocketNo in (
> Select DocketNo from Dockets
> Where ForCode not in (
> Select distinct forcode from dockets
> where docketdate > '03/31/2001'))
>
> But when I try to parameterise it as follows, and with the final line of
the
> Sql file changed to :
>
> where docketdate > :SaveDate))
>
> then I get an error message "Could not find object"
>
> procedure RunPQuery(SQLFile: string);
> begin
> with RSQuery do
> begin
> Close;
> Unprepare;
> SQL.LoadFromFile('DocNos.SQL');
> ParamByName('SaveDate').AsString := DateToStr(CurrentDate);
> Prepare;
> Open;
> MainForm.Memo.Lines.Add('Done');
> end;
> end;
>
> Can any one see where I have gone wrong?
>
> TIA Mark
>
>
---------------------------------------------------------------------------
New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
Website: http://www.delphi.org.nz
To UnSub, send email to: [EMAIL PROTECTED]
with body of "unsubscribe delphi"