[Gambas-user] Mysql query question
Ron
ron at ...1740...
Wed Nov 5 11:23:37 CET 2008
Ron schreef:
> Benoit Minisini wrote:
>> On mardi 4 novembre 2008, Ron wrote:
>>
>>> Hi,
>>>
>>> I'm replacing my buggy mysql query's for correct ones...
>>>
>>> All is well except for this one...
>>>
>>> DIM sTable as String = "remarks_tags"
>>>
>>> Main.hDB.Exec("SELECT text FROM " & sTable & " ORDER BY rand() LIMIT
>>> 1")
>>> This works ok...
>>>
>>> Replaced by...
>>>
>>> Main.hDB.Exec("SELECT text FROM &1 ORDER BY rand() LIMIT 1", sTable)
>>>
>>> Which results in an SQL query syntax error, is this correct behavior?
>>>
>>> Any ideas?
>>>
>>> Regards,
>>> Ron_2nd
>>>
>>>
>>
>> &1, &2... are there for quoting SQL values, not SQL table or field
>> names.
>> Moreover, if you want to insert a table or field name in a SQL
>> request, you should use the DB.Quote() function:
>>
>> Main.hDB.Exec("SELECT text FROM " & DB.Quote(sTable) & " ORDER BY
>> rand() LIMIT 1")
>>
>>
>
> Ok got it, works ok now.
>
> Thanks.
>
Does gambas provide an equivalent for the sql code below?
sSql = "CREATE TABLE capture_camera" & iCam & " ("
sSql &= "`id` int(11) NOT NULL auto_increment,"
sSql &= "`stamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update
CURRENT_TIMESTAMP,"
sSql &= "`image` longblob,"
sSql &= "PRIMARY KEY( `id`),"
sSql &= "KEY `timestamp` (`stamp`)"
sSql &= ");"
Main.hDB.Exec(sSql)
This is what I have so far, but the replacement of the KEY and
CURRENT_TIMESTAMP on update functionality is unclear to me.
It seems it's not here, and I have to keep using the method above.
DIM tableCaptures as Table
tableCaptures = Main.hDB.Tables.Add("capture_camera" & iCam)
tableCaptures.Fields.Add("id", db.Serial)
tableCaptures.Fields.Add("stamp", db.date, 32)
tableCaptures.Fields.Add("image", db.blob)
tableCaptures.PrimaryKey = ["id"]
tableCaptures.Update()
I'm using the mysql driver.
Regards,
Ron_2nd
More information about the User
mailing list