another Class::DBI::Sybase patch (0.3)

[prev] [thread] [next] [Date index for 2004/10/20]

From: Michael Wojcikiewicz
Subject: another Class::DBI::Sybase patch (0.3)
Date: 15:44 on 20 Oct 2004
------=_20041020104414_17762
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

After some more testing, I realized the changes I made to
Class::DBI:Sybase were not enough.  Attached is 0.3 which correctly deals
with last_insert_id behaviour.. sorry about that

--mike

>> On Tue, Oct 19, 2004 at 11:56:19AM -0500, Michael Wojcikiewicz wrote:
>>> Attached is a patch (and full file) for allowing auto-generation of
>>> values
>>> for IDENTITY columns in Sybase.  It relies on the fact that sp_help
> returns the right info regarding IDENTITY columns (works in sybase
> 12.5.2).
>>> Comments?  Suggestions?  Bugs??
>>
>> Just curious why you'd going through the DBI prepare-execute-fetch
> cycle, rather than the normal Class::DBI set-sql approach?
>
> I was just following the coding convention that was in the 0.1 release.  I
> guess it seems like overkill to use set_sql for a built-in command (like
> sp_columns or sp_help) or for a statement as simple as 'SELECT
> @@IDENTITY'.  I could convert to use set_sql if that is desired.
>
> --mike
>
>
>

------=_20041020104414_17762
Content-Type: application/octet-stream; name="Sybase.pm"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Sybase.pm"

cGFja2FnZSBDbGFzczo6REJJOjpTeWJhc2U7Cgo9aGVhZDEgTkFNRQoKQ2xhc3M6OkRCSTo6U3li
YXNlIC0gRXh0ZW5zaW9ucyB0byBDbGFzczo6REJJIGZvciBTeWJhc2UKCj1oZWFkMSBTWU5PUFNJ
UwoKICBwYWNrYWdlIE11c2ljOjpEQkk7CiAgdXNlIGJhc2UgJ0NsYXNzOjpEQkk6OlN5YmFzZSc7
CiAgTXVzaWM6OkRCSS0+c2V0X2RiKCdNYWluJywgJ2RiaTpTeWJhc2U6c2VydmVyPSRzZXJ2ZXIn
LCAndXNlcm5hbWUnLCAncGFzc3dvcmQnKTsKCiAgcGFja2FnZSBBcnRpc3Q7CiAgdXNlIGJhc2Ug
J011c2ljOjpEQkknOwogIF9fUEFDS0FHRV9fLT5zZXRfdXBfdGFibGUoJ0FydGlzdCcpOwogIAog
ICMgLi4uIHNlZSB0aGUgQ2xhc3M6OkRCSSBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzIG9uIENs
YXNzOjpEQkkgdXNhZ2UKCj1oZWFkMSBERVNDUklQVElPTgoKVGhpcyBpcyBhbiBleHRlbnNpb24g
dG8gQ2xhc3M6OkRCSSB0aGF0IGN1cnJlbnRseSBpbXBsZW1lbnRzOgoKCSogQXV0b21hdGljIGNv
bHVtbiBuYW1lIGRpc2NvdmVyeS4KCSogV29ya3Mgd2l0aCBJREVOVElUWSBjb2x1bW5zIHRvIGF1
dG8tZ2VuZXJhdGUgcHJpbWFyeSBrZXlzLgoJCkluc3RlYWQgb2Ygc2V0dGluZyBDbGFzczo6REJJ
IGFzIHlvdXIgYmFzZSBjbGFzcywgdXNlIHRoaXMuCgo9aGVhZDEgQlVHUwoKREJEOjpTeWJhc2Ug
Y3VycmVudGx5IGhhcyBhIGJ1ZyB3aGVyZSBhIHN0YXRlbWVudCBoYW5kbGUgY2FuIGJlIG1hcmtl
ZCBhcwphY3RpdmUsIGV2ZW4gdGhvdWdoIGl0J3Mgbm90LiBXZSBvdmVycmlkZSBzdGhfdG9fb2Jq
ZWN0cyB0byBjYWxsIGZpbmlzaCgpIG9uIHRoZSBoYW5kbGUuCgo9aGVhZDEgQVVUSE9SUwoKRGFu
IFN1bGx5IEU8bHQ+ZGFuaWVsQGNwYW4ub3JnRTxndD4KCk1pY2hhZWwgV29qY2lrZXdpY3ogRTxs
dD5taWtlQHBlcmxwaW1wcy5jb21FPGd0PgoKPWhlYWQxIFNFRSBBTFNPCgpMPENsYXNzOjpEQkk+
LCBMPERCRDo6U3liYXNlPgoKPWN1dAoKdXNlIHN0cmljdDsKdXNlIGJhc2UgJ0NsYXNzOjpEQkkn
OwoKdXNlIHZhcnMgcXcoJFZFUlNJT04pOwokVkVSU0lPTiA9ICcwLjMnOwoKc3ViIF9kaWUgeyBy
ZXF1aXJlIENhcnA7IENhcnA6OmNyb2FrKEBfKTsgfSAKCiMgVGhpcyBpcyBuZWNlc3NhcnkgdG8g
Z2V0IHRoZSBsYXN0IElEIGJhY2sKX19QQUNLQUdFX18tPnNldF9zcWwoTWFrZU5ld09iaiA9PiA8
PCcnKTsKU0VUIE5PQ09VTlQgT04KSU5TRVJUIElOVE8gX19UQUJMRV9fICglcykKVkFMVUVTICgl
cykKU0VMRUNUIEBASURFTlRJVFkKCgpzdWIgc2V0X3VwX3RhYmxlIHsKCW15KCRjbGFzcywgJHRh
YmxlKSA9IEBfOwoJbXkgJGRiaCA9ICRjbGFzcy0+ZGJfTWFpbigpOwoKCSRjbGFzcy0+dGFibGUo
JHRhYmxlKTsKCgkjIGZpbmQgdGhlIHByaW1hcnkga2V5IGFuZCBjb2x1bW4gbmFtZXMuCglteSAk
c3RoID0gJGRiaC0+cHJlcGFyZSgic3BfY29sdW1ucyAkdGFibGUiKTsKCSAgICRzdGgtPmV4ZWN1
dGUoKTsKCglteSAkY29sID0gJHN0aC0+ZmV0Y2hhbGxfYXJyYXlyZWY7CgkgICAkc3RoLT5maW5p
c2goKTsKCglfZGllKCdUaGUgIicuICRjbGFzcy0+dGFibGUoKSAuICciIHRhYmxlIGhhcyBubyBw
cmltYXJ5IGtleScpIHVubGVzcyAkY29sLT5bMF1bM107CgoJJGNsYXNzLT5jb2x1bW5zKEFsbCA9
PiBtYXAgeyRfLT5bM119IEAkY29sKTsKCSRjbGFzcy0+Y29sdW1ucyhQcmltYXJ5ID0+ICRjb2wt
PlswXVszXSk7CgoJIyBub3cgZmluZCB0aGUgSURFTlRJVFkgY29sdW1uCgkkc3RoID0gJGRiaC0+
cHJlcGFyZSgic3BfaGVscCAkdGFibGUiKTsKCSRzdGggLT4gZXhlY3V0ZSgpOwoJIyB0aGUgZmly
c3QgdHdvIHJlc3VsdHNldHMgY29udGFpbiBubyBpbmZvIGFib3V0IGZpbmRpbmcgdGhlIGlkZW50
aXR5IGNvbHVtbgoJJHN0aCAtPiBmZXRjaGFsbF9hcnJheXJlZigpIGZvciAxIC4uIDI7IAoJJGNv
bCA9ICRzdGggLT4gZmV0Y2hhbGxfYXJyYXlyZWYoKTsgCgoJbXkgKCRpZGVudGl0eSkgPSBncmVw
KCAkXyAtPiBbOV0gPT0gMSwgQCRjb2wgKTsgIyB0aGUgMTB0aCBjb2x1bW4gY29udGFpbnMgYSBi
b29sZWFuIGRlbm90aW5nIHdoZXRoZXIgaXQncyBhbiBJREVOVElUWQoJJGNsYXNzIC0+IGNvbHVt
bnMoSURFTlRJVFkgPT4gJGlkZW50aXR5IC0+IFswXSkgaWYgJGlkZW50aXR5OyAjIHN0b3JlIHRo
ZSBJREVOVElUWSBjb2x1bW4JCn0KCiMgRml4ZXMgYSBEQkQ6OlN5YmFzZSBwcm9ibGVtIHdoZXJl
IHRoZSBoYW5kbGUgaXMgc3RpbGwgYWN0aXZlLgpzdWIgc3RoX3RvX29iamVjdHMgewoJbXkgKCRj
bGFzcywgJHN0aCwgJGFyZ3MpID0gQF87CgoJJGNsYXNzLT5fY3JvYWsoInN0aF90b19vYmplY3Rz
IG5lZWRzIGEgc3RhdGVtZW50IGhhbmRsZSIpIHVubGVzcyAkc3RoOwoKCXVubGVzcyAoVU5JVkVS
U0FMOjppc2EoJHN0aCA9PiAiREJJOjpzdCIpKSB7CgkJbXkgJG1ldGggPSAic3FsXyRzdGgiOwoJ
CSRzdGggPSAkY2xhc3MtPiRtZXRoKCk7Cgl9CgoJJHN0aC0+ZmluaXNoKCkgaWYgJHN0aC0+e0Fj
dGl2ZX07CgoJcmV0dXJuICRjbGFzcy0+U1VQRVI6OnN0aF90b19vYmplY3RzKCRzdGgsICRhcmdz
KTsKfQoKc3ViIF9pbnNlcnRfcm93IHsKICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICBteSAkZGF0
YSA9IHNoaWZ0OwoJbXkgQGlkZW50aXR5X2NvbHVtbnMgPSAkc2VsZiAtPiBjb2x1bW5zKCdJREVO
VElUWScpOwoKICAgIGV2YWwgewoJCW15IEBjb2x1bW5zOwoJCW15IEB2YWx1ZXM7CgoJCSMgT21p
dCB0aGUgSURFTlRJVFkgY29sdW1uIHRvIGxldCBpdCBiZSBBdXRvIEdlbmVyYXRlZAoJCWZvciBt
eSAkY29sdW1uIChrZXlzICUkZGF0YSkgewoJCQl1bmxlc3MgKCAkY29sdW1uIGVxICRpZGVudGl0
eV9jb2x1bW5zWzBdICkgewoJCQkJcHVzaCBAY29sdW1ucywgJGNvbHVtbjsKCQkJCXB1c2ggQHZh
bHVlcywgJGRhdGEgLT4geyRjb2x1bW59OwoJCQl9CgkJfQogICAgICAgIG15ICRzdGggPSAkc2Vs
Zi0+c3FsX01ha2VOZXdPYmooCiAgICAgICAgICAgIGpvaW4oJywgJywgQGNvbHVtbnMpLAogICAg
ICAgICAgICBqb2luKCcsICcsIG1hcCAkc2VsZi0+X2NvbHVtbl9wbGFjZWhvbGRlcigkXyksIEBj
b2x1bW5zKSwKCQkJCQkJCQkJCQkpOwogICAgICAgICRzZWxmLT5fYmluZF9wYXJhbSgkc3RoLCBc
QGNvbHVtbnMpOwogICAgICAgICRzdGgtPmV4ZWN1dGUoQHZhbHVlcyk7CgoJCW15ICRpZCA9ICRz
dGggLT4gZmV0Y2hyb3dfYXJyYXlyZWYoKSAtPiBbMF07CgogICAgICAgICRkYXRhLT57ICRpZGVu
dGl0eV9jb2x1bW5zWzBdIH0gPSAkaWQKICAgICAgICAgICAgaWYgQGlkZW50aXR5X2NvbHVtbnMg
PT0gMQogICAgICAgICAgICAmJiAhZGVmaW5lZCAkZGF0YS0+eyAkaWRlbnRpdHlfY29sdW1uc1sw
XSB9OwogICAgfTsKICAgIGlmICgkQCkgewogICAgICAgIG15ICRjbGFzcyA9IHJlZiAkc2VsZjsK
ICAgICAgICByZXR1cm4gJHNlbGYtPl9jcm9haygKICAgICAgICAgICAgIkNhbid0IGluc2VydCBu
ZXcgJGNsYXNzOiAkQCIsCiAgICAgICAgICAgIGVyciAgICA9PiAkQCwKICAgICAgICAgICAgbWV0
aG9kID0+ICdjcmVhdGUnCgkJCQkJCQkgKTsKICAgIH0KICAgIHJldHVybiAxOwp9CgoxOwoKX19F
TkRfXwo=
------=_20041020104414_17762--

Class::DBI::Sybase patch (for IDENTITY columns)
Michael Wojcikiewicz 16:56 on 19 Oct 2004

Re: Class::DBI::Sybase patch (for IDENTITY columns)
Michael Wojcikiewicz 17:28 on 19 Oct 2004

another Class::DBI::Sybase patch (0.3)
Michael Wojcikiewicz 15:44 on 20 Oct 2004

Generated at 11:34 on 01 Dec 2004 by mariachi v0.52