[PD] [psql] object hand-holding
Hans-Christoph Steiner
hans at eds.org
Sat Dec 8 23:58:28 CET 2007
I'm not a big fan of [expr]'s syntax since it is custom syntax that
is not used anywhere else in Pd. Instead, you could achieve the same
result by using the interface I described, then embedded your SQL
statements with [sql] into a subpatch or an abstraction. This just
about any regular Pd user knows how to do.
.hc
On Dec 8, 2007, at 12:51 AM, Mathieu Bouchard wrote:
> On Fri, 7 Dec 2007, Hans-Christoph Steiner wrote:
>
>> That is done by sending the [submit( message to the hot inlet. Or
>> do you mean having multiple SQL calls separated by semi-colons?
>> If you wanted to add semicolons, there would have to be a special
>> message, I think we could just reuse the "addsemi", "addcomma",
>> "adddollar" messages from message boxes.
>
> The only SQL interface I'd really be happy to use (if I had to use
> SQL) is something using placeholders, sort of like [expr], but
> perhaps written in the usual SQL style:
>
> [sql select * from candies where flavour=? and colour=?]
>
> you wouldn't modify the statement any more than you modify an
> [expr] at runtime. this allows the statement to be precompiled by
> the server. you could still allow runtime change but perhaps it
> would get messy with multiple inlets, so let's assume for now that
> it is not supported.
>
> in the above example, [sql] has two inlets, one for each question-
> mark. Sending a list in the hot inlet is also correct, and "set"
> and "bang" do as usual. Each value will be quoted automatically,
> with appropriate apostrophes and backslashes and stuff, so that the
> user never has to do it. (my biggest problem with PHP is the lack
> of this feature).
>
> an alternate way to do it is to use the same syntax as [expr]. This
> allows a repeated value to not have to be repeated in the input to
> the object. However, this means that values are going to be typed,
> which is a bad match with SQL, which doesn't type values (it only
> types table cells themselves and casts everything automatically).
>
>> As far as I know, the semi-colon at the end of the statement in
>> SQL triggers the execution of that statement
>
> With this interface, there would be no semicolon at the end (or it
> would be optional and useless). The execution is done each time the
> hot inlet is activated (bang, float, symbol or list, but not others
> like set and whatever else if there's anything else).
>
>> so I can't see an advantage to having multiple, semi-colon
>> terminated statements in a single message box. Does it change how
>> the SQL is executed if they are submitted at the same time?
>
> Multiple statements are compiled as one function to which you pass
> all arguments you want at once. This could be useful if you want to
> do both insert and select in one go. It may be a bit faster, or
> maybe not, but it's convenient.
>
> [expr] supports semicolons and uses them for multiple outputs. For
> [sql], it might make only sense to have one outlet per query rather
> than by statement: that is, only SELECT and EXPLAIN and such would
> get an outlet, while INSERT and DELETE wouldn't, for example.
>
> At this point, I can't think of a case where I'd like to modify a
> SQL statement at runtime. Somehow it's possible to find a use, but
> I think that for almost everything you don't.
>
> _ _ __ ___ _____ ________ _____________ _____________________ ...
> | Mathieu Bouchard - tél:+1.514.383.3801, Montréal QC Canada
------------------------------------------------------------------------
----
I spent 33 years and four months in active military service and
during that period I spent most of my time as a high class muscle man
for Big Business, for Wall Street and the bankers. - General
Smedley Butler
More information about the Pd-list
mailing list