[geeklog-devel] SQL stuff
Oliver Spiesshofer
oliver at spiesshofer.com
Mon Nov 5 09:49:41 EST 2007
Chances are that a bunch of plugins are using the DB_save.
So you rather keep the DB_save but edit its code instead.
Oliver
Randy Kolenko wrote:
> I did some more digging last night in the Replace INTO approximation for
> SQL server support.
> As it turns out, the DB_Save routine is the only area that does a
> REPLACE INTO approximation.
> So in essence, leaving the Replace into in the stories area will not
> work for sql server.
>
> In Fact, I do not recommend even using DB_SAVE to replace the replace
> into statements as it is an approximation. We should really be sticking
> to standard SQL (portable SQL). Using the proper UPDATES or INSERTS is
> the proper way to resolve this.
>
> -randy
>
>
>
>
>
>>> #1: In story.class.php, we have a hard-coded REPLACE INTO (I
>>> assume it also exists in 1.4.1 - didn't check). That, IIRC,
>>> is a MySQL extension. Shouldn't we try and avoid these sort
>>> of things? Given that the story class already does a lot of
>>> checks for existing IDs it looks like that shouldn't be too
>>> hard to replace with INSERT and a DELETE, where needed.
>>>
>> All REPLACE INTO statements should be converted. I made every attempt
>> in the MS SQL implementation to translate those Replace Into
>> statements
>> with the appropriate syntax for SQL Server. However it is obviously
>> more efficient to *not* go through a syntax and conversion
>> process - so
>> the REPLACE INTO should be, well, replaced!
>>
>>
>>
>>
>>> # 2: What I was actually after is the ID generated from an
>>> INSERT. In other words: DB_insertId().
>>>
>>> The MS SQL implementation carries a big warning to always
>>> pass in a link identification so that you don't accidentally
>>> get the last ID from another connection. But all the calls to
>>> DB_insertId() that I can find are without that identifier.
>>> And since it's stored in a class variable anyway, you can't
>>> even pass it in from the outside.
>>>
>>>
>> I threw the warning in there during development of the class since, at
>> that point, the fetching was not working 100% properly and the only
>> resolution at that time was to include the link identifier. You no
>> longer need to include the link identifiers to fetch the last
>> insert ID.
>> Actually, my big warning message can be removed if you'd like.
>>
>> -randy
>>
>>
>> _______________________________________________
>> geeklog-devel mailing list
>> geeklog-devel at lists.geeklog.net
>> http://eight.pairlist.net/mailman/listinfo/geeklog-devel
>>
>>
>
> _______________________________________________
> geeklog-devel mailing list
> geeklog-devel at lists.geeklog.net
> http://eight.pairlist.net/mailman/listinfo/geeklog-devel
>
>
>
More information about the geeklog-devel
mailing list