Solved

Delphi 7 :: TADOQuery OnAfterScroll Error with parameters

Posted on 2007-11-27
12
1,205 Views
Last Modified: 2013-11-23
Dear Experts,

I have 2 TDBGrid components.
The 1st one must display master table records and the second one displays detail table records
for the selected row in the master table.
qOrders = Master Query
qParts = Detail Query.

On qOrders' OnAfterScroll event I have the following code:
**** PS: See code snippet.

When my application starts up I receives and error:
"EDatabaseError with message 'qParts: Parameter 'POrderNumber' not found'...."
This parameter does exist and when I click the error message away the application starts up and
when scrolling through the master dbgrid the code is working 100%. It is only when the app starts up when I receive this error. After that, it is working as expected.

What can possible be wrong?

Please help.
procedure TPickingListFrame.qOrdersAfterScroll(DataSet: TDataSet);
begin
  inherited;
  If qOrders.IsEmpty then Exit;
 
  qParts.Close;
  qParts.SQL.Clear;
  qParts.SQL.Text := 'SELECT POrderNumber, ItemNumber, ItemDescription, Qty FROM tblCallOff WHERE '+
    '(POrderNumber = :POrderNumber) AND (Deleted = :Deleted) ORDER BY ItemNumber';
  qParts.Parameters.ParamByName('POrderNumber').Value := qOrders.FieldByName('POrderNumber').AsString;
  qParts.Parameters.ParamByName('Deleted').Value := 0;
  qParts.Open;
end;

Open in new window

0
Comment
Question by:Marius0188
  • 3
  • 3
  • 2
  • +2
12 Comments
 
LVL 27

Expert Comment

by:kretzschmar
ID: 20363690
ensure, that the ParamCheck-property of the TAdoQuery is set to true

meikl ;-)
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 20363698
in case that the sql don't change during runtime (except the parameterValues),
you could simple close, set the parameter and open again
(a clear and new set of the sql is not needed then)
(would be also raise the performance)

meikl ;-)
0
 
LVL 4

Expert Comment

by:JeePeeTee
ID: 20363862
Is your DBConnection and your qOrders/qPart opened at designtime? Close them before you launch you application.
0
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 
LVL 10

Expert Comment

by:dinilud
ID: 20363906
are you sure the error from "qOrdersAfterScroll" event
0
 
LVL 10

Expert Comment

by:dinilud
ID: 20363970
Change component creation order of these two components.
(qOrders,qParts)
0
 
LVL 10

Expert Comment

by:dinilud
ID: 20363998
Set Active property of qOrders equal to false. then open this dataset in the "formcreate" event.




procedure TPickingListFrame.FormCreate(Sender: TObject);
begin
   qOrders.Open;
end;
0
 
LVL 4

Expert Comment

by:JeePeeTee
ID: 20364018
Don't open on TPickingListFrame.FormCreate(Sender: TObject). Open during TPickingListFrame.FormShow(....

This will by-pass creation order issues as well.
0
 
LVL 21

Accepted Solution

by:
developmentguru earned 500 total points
ID: 20365253
With my own testing I verified your results.  I also discovered that having an active TADOConnection (referenced by the ADOQuery) corrected the situation.

Let me know if you need more.
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 20617343
as the questioner itself didn't response to any comment which wass done, so that any advice due lack of feedback could be/ could not be right, i would recommend to delete this question

meikl ;-)
0
 
LVL 1

Expert Comment

by:Computer101
ID: 21197650
Forced accept.

Computer101
EE Admin
0

Featured Post

Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Help on project with Soap 10 54
How to renew a Delphi rad-studio licence? 5 65
CheckListBox usage 3 59
MS Access from Delphi 31 33
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…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…

831 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