Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: dbd:Sybase bit scramble

by mje (Curate)
on Mar 21, 2013 at 09:55 UTC ( #1024698=note: print w/ replies, xml ) Need Help??


in reply to dbd:Sybase bit scramble

Just a small correction to your reference to dbd odbc sql big file blues. I didn't (and I don't think anyone else did either) recommend you used the Easysoft SQL Server ODBC Driver I simply showed you that your code worked with that driver as part of my evidence that something (possibly freeTDS) was broken.

Also, could you point me at this "similar issue was posted on CPAN as a bug for the latest DBC:ODBC".


Comment on Re: dbd:Sybase bit scramble
Re^2: dbd:Sybase bit scramble
by CaptainDaddy (Initiate) on Mar 21, 2013 at 13:16 UTC

      FWIW I don't think the issue you hit and the one you point to are related. As you may have seen if you looked down the whole log for that bug I rejected it as not a DBD::ODBC but the reporter keeps coming back and reopening it.

Re^2: dbd:Sybase bit scramble
by CaptainDaddy (Initiate) on Mar 22, 2013 at 15:33 UTC

    Code

    # $host='...'; $port='...'; $user = "..."; $pass = "..."; $dsn="dbi:Sybase;server=dbhDB;database=...;"; $dbh= DBI->connect("$dsn",$user,$pass) or die "can't connect"; $fileTableName="fileTable"; $cmd="SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE T +ABLE' AND TABLE_NAME='$fileTableName\'"; $fetchcmd= $dbh->prepare($cmd); $fetchcmd->execute(); if(@row= $fetchcmd->fetchrow_array){ print "the file table is there!!!\n"; }else { $createCmd=$dbh->prepare("create table $fileTableName (fileCol +umn VARBINARY(MAX) not null)"); $createCmd->execute() or die "can't create table"; $createCmd->finish(); } $fetchcmd->finish(); $insertcmd= $dbh-> prepare("insert into $fileTableName (fileColumn) va +lues (CONVERT(varbinary(max),?))"); open FILE,"<","./a.b" or die "file"; binmode(FILE); $filelength = -s FILE; read(FILE,$fcontents,$filelength); print"did"; $insertcmd->bind_param(1,$fcontents,DBI::SQL_VARBINARY); $insertcmd->execute() or print" not "; $insertcmd->finish(); $sz=length($insert); print " succeed. size: $sz\n"; close(FILE); $dbh->disconnect;

    results

    >perl sybasefiletrial.pl the file table is there!!! DBD::Sybase::st execute failed: OpenClient message: LAYER = (0) ORIGIN + = (0) SEVERITY = (9) NUMBER = (98) Server dbhDB, database Message String: Error converting characters into server's character se +t. Some character(s) could not be converted did succeed. size: 0
    I probably am missing something obvious here; help will be apprecieated.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1024698]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (13)
As of 2014-10-31 14:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (217 votes), past polls