[PD] Question about SQL Placeholder Implementation

Hans-Christoph Steiner hans at eds.org
Sat Dec 22 08:27:03 CET 2007


I just committed my first stabs at a sketch for the [sql_query]  
object.  It doesn't do anything yet, but it does recognize ?  
placeholders as object arguments and creates inlets.  Other than  
that, the only thing it currently does is crash :).

http://pure-data.cvs.sourceforge.net/pure-data/externals/hcs/ 
sql_query-help.pd
http://pure-data.cvs.sourceforge.net/pure-data/externals/hcs/sql_query.c

.hc

On Dec 21, 2007, at 1:36 PM, Mike McGonagle wrote:

>
>
> On 12/21/07, Mathieu Bouchard <matju at artengine.ca> wrote:
> On Tue, 18 Dec 2007, Mike McGonagle wrote:
>
> > [query <srv_id> insert into mytable (id, name, token) values (? 
> f,'?s','?s')]
> > In this example, the first placeholder would expect a Float, with  
> the next
> > two expecting a Symbol (just think of this as a variation on the  
> printf
> > string substitutions).
>
> It looks more like the types of [t] [pack] [unpack] [expr] etc.
>
>
> Yes, they are PD types.

> You don't really need to type your data. SQL is largely typeless:  
> at least
> at the level of what you can put in one table cell, anything is a  
> string.
> It becomes typed (but auto-cast) when put in the cell, but rebecomes
> untyped when taken out of the cell.
>
>
> Yes, I know that these things can be stored in a typeless manner,  
> but the functions that bind the SQL statement with their  
> placeholders can be of any type, as there are functions for the  
> various datatypes.
>
> http://www.sqlite.org/c3ref/bind_blob.html
>
> This link shows all the different functions used to bind the data  
> to the statement placeholders.
>
> http://dev.mysql.com/doc/refman/5.0/en/c-api-prepared-statement- 
> datatypes.html
>
> And if you look at how MySQL does this, while they only provide a  
> single bind function, it does have the datatypes for the data in a  
> structure that gets passed into the bind function.
>
> Also, from looking at libdbi, it appears that they don't even  
> bother with placeholders at all.
>
> This is not an issue of how the user sees these things, it is how  
> the C code interfaces with the database.
>
> So, just how do we do this in a consistent manner when all the  
> different interfaces don't support these things, AND if they do,  
> they do them differently.
>
> > but considering that the databases need to know the specific data  
> types
> > for each placeholder,
>
> heh? do they?
>
>
> SQLite does. MySQL appears to as well. And yes, it is possible to  
> just force everything to be a string/c-string and be done with it.  
> SQLite actually stores everything as a string anyway, despite the  
> defined types in the create statement.
>
> Mike
>
>
>   _ _ __ ___ _____ ________ _____________ _____________________ ...
> | Mathieu Bouchard - tél:+1.514.383.3801, Montréal QC Canada
>
>
>
> -- 
> Peace may sound simple—one beautiful word— but it requires  
> everything we have, every quality, every strength, every dream,  
> every high ideal.
> —Yehudi Menuhin (1916–1999), musician
> _______________________________________________
> PD-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/ 
> listinfo/pd-list




------------------------------------------------------------------------ 
----

                             kill your television


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20071221/6fe994df/attachment.htm>


More information about the Pd-list mailing list