On Thursday, November 21, 2002, at 06:45 AM, Jeff Urlwin wrote:
>> It doesn't appear to handle "...""...", though, right? Or am I missing
>> it?
>
> Actually, it does, but completely "accidentally". DBD::ODBC is not
> concerned with the fact that there are " inside the ", so:
> the first quote sets in_literal=1 (true)
> the second quote sets in_literal=0 (false)
> the third puts us right back in_literal=1, so we can keep processing.
> Since there should be an even number of " marks, I think we're OK here.
>
> Seems too simple, but, it works. There may be a case that gets me,
> but I
> don't think so.
No, that makes a *lot* of sense. Allows it to be much more elegant than
when checking for "\"" and '\'' as escapes!
> You probably wouldn't have that prepared as one statement.
> Using, say, SQL Server, you can do something like (pseudo code here
> with
> some exaggeration, but I can actually provide test code that someone
> sent):
>
> sp_pain_to_deal_with(int i) as
>
> if (i == 1)
> select a, b, c from foo; /* returns a, b, c as result set */
> elseif (i == 2)
> delete from foo; /* returns a count, not a result set */
> else
> select d, a, b, f from foo; /* returns something completely
> different */
> end;
Aaah! Get away, get away!!! ;-)
> Or, the more "normal" case:
> $sth = $dbh->prepare("insert a, b, c into foo values (?, ?, ?); select
> @@identidy;");
> which, in one "shot" insert into the table and gets back the
> auto-incremented id for the table (again, there is probably a lot of
> syntax
> issue with the above, but the concept is there).
Hrm, yes. I'm not sure that that's an issue for PostgreSQL.
Regards,
David
--
David Wheeler AIM: dwTheory
david@wheeler.net ICQ: 15726394
http://david.wheeler.net/ Yahoo!: dew7e Jabber:
Theory@jabber.org