[Gambas-devel] Question gb.db.Request

Benoit Minisini gambas at ...1...
Wed Apr 26 23:00:23 CEST 2006


On Friday 21 April 2006 07:04, ron wrote:
> I try to make program :)
>
> DIM Request as string
> Request ="id=" & useid
> IF usechar THEN Request = Request & " AND char=" $ usechar
>
> Somehow by accident i got the Completion comes up.
>
> As I understood for Request in the Completion it could be used
> to create a SQL line for the Connection.Exec() and made the next code
>
> DIM hConn as Connection
>  hConn = new Connection
>  ... setting the values
>
> DIM req AS Request
>  req.Select("field1,field2")
>  req.From("tblname")
>  req.Where("id=" & useid)
>  ...
>
> DIM hResult AS Result
>  hResult=hConn.Exec(req) ' forget the Argument and remaining
>  ...
>
>
> Browsing in the gb.db.form files while they are not documented yet.
> in srcfile DataCombo.class I found
>   rData = DB.Exec(Request.Select([$sKey,
> sDisp]).From($sTable).Where($sFilter).Get())
>
> Here the way Request is handled in different way the AutoCompletion
> suggest. Now I understand also the the meaning of .Get() more.
> However a Select is already meaning I want to Get the records.
> Then the .Get() must mean something else and I asume it means to Get from
> Request the complete SQL line in well formed fashion, I gues.
>
> With a look at other pages in gb.db I found
> --------
> Connection.Edit (gb.db)
> Syntax
> FUNCTION Edit ( Table AS String [ , Request AS String, Arguments AS , ... ]
> ) AS Result Request is a SQL WHERE clause used for filtering the table.
>   Request is here a string and looks to me the "id=123" case.
>
> For the Arguments should it not be
> FUNCTION Edit ( Table AS String [ , Request AS String [, Arguments AS , ...
> ] ] ) AS Result --------
> Connection.Exec (gb.db)
> Syntax
> FUNCTION Exec ( Request AS String, Arguments AS , ... ) AS Result
>   Request is a SQL WHERE clause used for filtering the table.
>
>   Request must be here something like a full SQL line.
>   Connection.Exec("id=123 and char=a") makes no sence to me.
>   For 'Arguments AS', the same as noted for FUNCTION Edit.
> --------
>
> Request is overall a very confusing word. (if the component gb.db.form is
> add) The way it is used in the DataCombo.class as given above looks nice to
> me. Note here also that 'Arguments AS' is not used so that must be
> optional.
>
>
> Can it be confirmed that
>   rData = DB.Exec(Request.Select([$sKey,
> sDisp]).From($sTable).Where($sFilter).Get())
>
> Is it the same as using a object Request, set the
> arguments/properties/methods and use it for case where only the field needs
> to change.
>
>   DIM MyRequest AS Request
>
>   MyRequest.Select("field1")
>   MyRequest.From("table")
>   MyRequest.Where("id=123")
>   rData = DB(MyRequest.Get())
>
>
> TIA from
>
> Ron
>
>

The Request class should not be exported, this is a mistake I done. It should 
be internal to the gb.db.form component.

This class is used for making SQL request. If you find it useful, maybe I 
could add this class to the gb.db.component. 

Regards,

-- 
Benoit Minisini





More information about the Devel mailing list