×
The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.
As Birgitta said, use a static SQL. Correct parameter makers use a ?, as
well to prevent any SQL injections.
I solved it with this statement:
Select ...
where (Field1 = '' or Field1 = :Value1) and (Field2 = '' or Field2 =
:Value2)
Karl
-----Ursprüngliche Nachricht-----
Von: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxxxxxxxx] Im Auftrag von
Craig Richards
Gesendet: Donnerstag, 17. Februar 2022 10:15
An: RPG programming on the IBM i (AS/400 and iSeries)
Betreff: Embedded SQL and Parameter Markers
I'm building a few "Work With" screens with filters at the moment
Fairly typical maintenance programs where several of the columns shown in a
subfile have a "filter" field above them for refining the record selection.
Because the number of filters used is variable, I have traditionally
created dynamic SQL by building up a WHERE clause in a string and adding in
any of the filter fields which have been entered on the screen by the user.
I was wondering if there is a reasonable way to do this using parameter
markers.
Given that the number of filters entered is variable, so would the list of
parameter markers be.
To illustrate - I'm doing something like (simplified for brevity):
If SqlWhere <> *Blanks;
SqlStm += SqlWhere;
EndIf;
etc.
In this simple example I could end up with:
- Select * from File
- Select *from File where Field1 = Value1
- Select *from File where Field2 = Value2
- Select *from File where Field1 = Value1 and Field2 = Value2
Is there a better way to build this dynamic sql?
Thanks in advance for any suggestions.
As an Amazon Associate we earn from qualifying purchases.
This thread ...
RE: Embedded SQL and Parameter Markers, (continued)
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact
[javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.