[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