Article View: borland.public.cppbuilder.database.ado
Article #3764Re: Dynamic SQL - How do I create dynamic SQL statements on the fly?
From: Walter Prins
Date: Wed, 19 Jun 2002 23:46
Date: Wed, 19 Jun 2002 23:46
34 lines
2264 bytes
2264 bytes
A rough example of genning sql using open arrays so you can have arbitrary
numbers of fields etc etc.:
// untested
procedure GenSQL(TableName : String; SelFields, WhereConds,
OrderByFields: array of String; SQL: TStrings);
var
i : Integer;
begin
SQL.Clear;
SQL.Add('select');
if High(SelFields) >= Low(SelFields) then
SQL.Add(SelFields[Low(SelFields)]);
for i := Low(SelFields)+1 to High(SelFields) do
SQL.Add(','+SelFields[i]);
SQL.Add('from '+TableName);
SQL.Add('where');
if High(WhereConds) >= Low(WhereConds) then
SQL.Add('('+WhereConds[Low(WhereConds)]+')');
for i := Low(WhereConds)+1 to High(WhereConds) do
SQL.Add('or ('+WhereConds[i]+')');
SQL.Add('order by');
if High(OrderByFields) >= Low(OrderByFields) then
SQL.Add(OrderByFields[Low(OrderByFields)]);
for i := Low(OrderByFields)+1 to High(OrderByFields) do
SQL.Add(','+OrderByFields[i]);
end;
HTH
Walter Prins
Technical Details
Message-ID:
<3d1109f4_1@dnews>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-08!supernews.com!newsswitch.lcs.mit.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.freenet.de!news.rwth-aachen.de!news.uni-stuttgart.de!nntp.cs.uni-magdeburg.de!PeerFeed.KWeb.on.ca!dnewsReferences:
<3cff342f_2@dnews> <3cff9614$1_1@dnews> <3cffb4e2_2@dnews> <3cffe0fb_2@dnews>Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fcd2b,a8d67f18caa8caff X-Google-Attributes: gidfcd2b,public X-Google-Thread: 10698b,a8d67f18caa8caff X-Google-Attributes: gid10698b,public X-Google-Thread: f6386,a8d67f18caa8caff X-Google-Attributes: gidf6386,public X-Google-ArrivalTime: 2002-06-19 16:01:04 PST From: "Walter Prins" <wprins.nospam@ananzi.co.za> Newsgroups: borland.public.cppbuilder.database.ado,borland.public.cppbuilder.database.multi-tier,borland.public.delphi.database.multi-tier References: <3cff342f_2@dnews> <3cff9614$1_1@dnews> <3cffb4e2_2@dnews> <3cffe0fb_2@dnews> Subject: Re: Dynamic SQL - How do I create dynamic SQL statements on the fly? Date: Wed, 19 Jun 2002 23:46:54 -0000 Lines: 36 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 NNTP-Posting-Host: 62.136.90.247 Message-ID: <3d1109f4_1@dnews> X-Trace: dnews 1024526836 62.136.90.247 (19 Jun 2002 15:47:16 -0700) Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-08!supernews.com!newsswitch.lcs.mit.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.freenet.de!news.rwth-aachen.de!news.uni-stuttgart.de!nntp.cs.uni-magdeburg.de!PeerFeed.KWeb.on.ca!dnews