PEPPLER.ORG
Michael Peppler
Sybase Consulting
Menu
Home
Sybase on Linux
Install Guide for Sybase on Linux
General Sybase Resources
General Perl Resources
Freeware
Sybperl
Sybase::Simple
DBD::Sybase
BCP Tool
Bug Tracker
Mailing List Archive
Downloads Directory
FAQs
Sybase on Linux FAQ
Sybperl FAQ
Personal
Michael Peppler's resume

sybperl-l Archive

Up    Prev    Next    

From: Michael Peppler <mpeppler at MBAY dot NET>
Subject: RE: more text questions
Date: Jan 26 1999 11:00PM

>>>>> "Steve" == Wechsler, Steven M  writes:

Steve> Here's how I'm trying it (the CTlib option isn't available to
Steve> me as all my code uses DBLib):

Code snipped...

Not sure what the problem is (and no time to really look), but the
following does work:

$dbh->sql("insert the_text_table(id, data) values(1, NULL)");
$dbh->dbcmd("select data from the_text_table where id = 1");
$dbh->dbsqlexec;
$dbh->dbresults;
$dbh->dbnextrow;
$dbh->dbwritetext('the_text_table.data', $dbh, 1, $data, TRUE);

et voilą (the TRUE is for logging to be turned on).

As you can see you can do this with only one open connection.

Michael




>> -----Original Message----- From: Michael Peppler
>> [mailto:mpeppler@mbay.net] Sent: Tuesday, January 26, 1999 4:45 PM
>> To: SybPerl Discussion List Subject: more text questions
>> 
>> 
>> >>>>> "Steve" == Wechsler, Steven M 
>> writes:
>> 
Steve> Why do dbpreptext/dbmoretext require the buffer size to be
Steve> specified, while dbwritetext does not?  The documentation is
Steve> unclear on this.
>>  The $size param to dbpreptext() tells DBlib the total size of the
>> TEXT buffeer that is being sent, and the $size param to
>> dbmoretext() tells DBlib the size of the current buffer. I realize
>> now that the size param to dbwritetext() could have been omitted -
>> I could have checked it in the procedure itself.
>> 
Steve> What is the most straightforward way to write text to a text
Steve> column?
>>  The simplest way is to use a regular insert statement using Client
>> Library:
>> 
>> $dbh->ct_sql(qq(insert the_text values($key, "$the_text")));
>> 
>> THis works fine (modulo quote problems).
>> 
>> Otherwise calling dbwritetext() is probably the simplest, altough
>> it's by definition a two step process - you need to retrieve the
>> TEXTPTR which is done internally by dbwritetext().
>> 
>> I don't know if there is any advantage (apart from memory use) of
>> using a multi-part insert instead of writing the whole buffer in a
>> single call.
>> 
>> Michael -- Michael Peppler -||- Data Migrations Inc.
>> mpeppler@mbay.net -||- http://www.mbay.net/~mpeppler Int. Sybase
>> User Group -||- http://www.isug.com Sybase on Linux mailing list:
>> ase-linux-list@isug.com
>> 



-- 
Michael Peppler         -||-  Data Migrations Inc.
mpeppler@mbay.net       -||-  http://www.mbay.net/~mpeppler
Int. Sybase User Group  -||-  http://www.isug.com
Sybase on Linux mailing list: ase-linux-list@isug.com