2008/12/24 Daniel Espinosa <[email protected]>

>
>>
>> 2008/12/23 Vivien Malerba <[email protected]>
>>
>>>
>>>
>>> 2008/12/21 Daniel Espinosa <[email protected]>
>>>
>>>> Hi all
>>>>
>>>> I'm working in gda_insert_row_into_table but have some troubles:
>>>>
>>>> I'm creating the SQL usin GdaSqlStatement structs, with success but
>>>> strings are renderer with out quotes ("") can any help me to know how can I
>>>> do this to work.
>>>>
>>>> I'm adding a GdaSqlExpr to values GList in the GdaSqlStatementInsert,
>>>> when render the GdaSqlStatement I get:
>>>>
>>>>  INTO test (q, number, a) VALUES (NEW TEXT, 1000, NUEVO NOMBRE)
>>>>
>>>> it is an invalid SQL, how can I get quoted strings. This must be
>>>>
>>>>  INTO test (q, number, a) VALUES ('NEW TEXT', 1000, 'NUEVO NOMBRE')
>>>>
>>>> for a PostgreSQL database.
>>>
>>>
>>> It's up to you to add quotes where they are needed (because the
>>> GdaSqlStatement is just a tree representation of an SQL statement). Anyway,
>>> what you should do is use GdaSqlParamSpec (which are variables or
>>> parameters), this will have the following benefits:
>>> * avoid you the job of adding quotes when needed
>>> * avoid any SQL injection problems
>>>
>>>
>>
> Coul you help me on how create a GdaSqlParamSpec?
>
>
> As Far As I Undertand for the code in gda_sql_param_spec_new (GValue
> *value), the value paramenter must be a string with the following syntax:
>
> "PARAM_NAME:G_TYPE_INT:N"
>
>
> As a collateral efect all functions in sql-parser directory doesn't have
> any documentation, then may is time to work on them, I'll try to help on
> them.


This API is the one exposed from the SQL parser, but as simple structures
are used, they can be created using g_new() as well. This is what is done in
the rest of Libgda. For examples, see the
gda_compute_unique_table_row_condition() function in the gda-util.c file.

For a real "user" level API I had the idea that maybe we could create an API
similar to SQLBuilder (http://openhms.sourceforge.net/sqlbuilder/), but I
haven't yet had the time to investigate...

Regards,

Vivien
_______________________________________________
gnome-db-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gnome-db-list

Reply via email to