[Gambas-user] How to write sql query in gambas way
adamnt42 at gmail.com
Tue May 10 13:26:07 CEST 2022
On Tue, 2022-05-10 at 12:57 +0200, Benoît Minisini wrote:
> Le 09/05/2022 à 17:55, Safiur Rahman a écrit :
> > Hi
> > I get result when I execute the following query:
> > Dim res As Result
> > res = conn.Exec("select fldtitle from tbltest where
> > flddepartment
> > in('Austria','Azerbaijan')")
> > But I don't get result when I execute the following query:
> > res = conn.Exec("select fldtitle from tbltest where flddepartment
> > in
> > &1", ["Austria", "Azerbaijan"])
> > How can I write this query properly in gambas passing an array
> > argument?
> > (Attached a project to demonstrate)
> > --
> > Regards
> > Safiur Rahman
> Substitution ("&1", "&2"...) can handle simple datatypes only. It's
> there for quoting, to avoid SQL injections in your code.
> You have to build the request argument by using the
> aArg = ["Austria", "Azerbaijan"]
> For I = 0 to aArg.Max
> aArg[I] = conn.Subst(aArg[I])
> res = conn.Exec("select fldtitle from tbltest where flddepartment in
> & aArg.Join(",") & ")
> Maybe I will made the Subst() method more clever, so that it does the
> previous job when handling arrays.
Hmm, maybe I did something years ago in local code. I cant see anything
in git. But strangely, it works here no matter how I try to fool it?
But then again we do use the "IN" constraint construct heavily and dont
seem to have these problems. Lost in history?
aha! I see we use a local resolution specific to in constraints. I'll
see if I can add some more tomorrow. (...sleep now)
More information about the User