|
|
sybperl-l Archive
Up Prev Next
From: Michael Peppler <mpeppler at peppler dot org>
Subject: Re: Insertion of BINARY/VARBINARY values with DBD::Sybase?
Date: Aug 3 2001 3:41PM
Steve Sabljak writes:
> >
> > Steve Sabljak writes:
> > > Would anyone be able to an example of inserting binary values
> > > (with embedded nuls) into a Sybase ASE Database (v12) using
> > > DBD::Sybase 0.91? I've tried several different ways and still
> > > can't get it to work without truncating the data at the first
> > > nul byte.
> >
> > Have you tried converting the binary data to a hex string?
> >
> > Michael
> > --
> > Michael Peppler - Data Migrations Inc. - http://www.mbay.net/~mpeppler
> > mpeppler@peppler.org - mpeppler@mbay.net
> > International Sybase User Group - http://www.isug.com
> >
>
> Yes, I have, and it does work but only in the case where placeholders
> are not used. If I use placeholders and convert the binary data to a hex
> string, it's the hex string which is treated as the data itself, which
> is not the behaviour I'm seeking.
>
> e.g. say I want to insert the binary value 0x110011 into a varbinary field
>
> $hexstr = "0x110011";
> $sth = $dbh->prepare("insert into sometable (bin) values (?)");
> $sth->execute($hexstr);
>
> The value 0x3078313130303131 is inserted when what I want is 0x110011
>
> $hexstr = "0x110011";
> $sth = $dbh->prepare("insert into sometable (bin) values ($hexstr)");
> $sth->execute();
>
> This yields the correct results, but is too slow. I need to be able to
> prepare the statement just once and then do a large number of inserts
> quickly.
>
> $rawstr = pack("H*", "110011");
> $sth = $dbh->prepare("insert into sometable (bin) values (?)");
> $sth->execute($rawstr);
>
> The value 0x11 is inserted when what I want is 0x110011.
> It's truncated at the first nul byte.
>
> Does the current version of DBD::Sybase support insertion of BINARY/VARBINARY
> values using placeholders?
It's a bug in DBD::Sybase. I'll have a fix for you in a bit.
Michael
--
Michael Peppler - Data Migrations Inc. - http://www.mbay.net/~mpeppler
mpeppler@peppler.org - mpeppler@mbay.net
International Sybase User Group - http://www.isug.com
|