🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.cppbuilder.database.ado
Article #3764

Re: Dynamic SQL - How do I create dynamic SQL statements on the fly?

#3764
From: Walter Prins
Date: Wed, 19 Jun 2002 23:46
34 lines
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!dnews
References: <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