Up Prev Next
From: "Wechsler, Steven M" <WechslerSM at bernstein dot com>
Subject: RE: more text questions
Date: Jan 26 1999 10:19PM
Here's how I'm trying it (the CTlib option isn't available to me as all my
code uses DBLib):
Open connections $dbh_a and $dbh_b to the server
$dbh_a: create a new row in the table with the text column NULL
call dbcmd("select char_column, numeric_column,
text_column from table where ...")
$dbh_b: call dbpreptext("table.column", $dbh_a, 3, length $complete_file)
(while looping through $complete_file, use
on 512 byte chunks until $complete_file has been
Whenever I try this I get the error:
Msg 156, Level 15, State 1
Incorrect syntax near the keyword 'NULL'.
General SQL Server error: Check messages from the SQL Server.
when calling the first dbsqlok to $dbh_b.
I also tried using dbwritetext and got the same error.
Also, can you tell me why two connections to the server are required when
the C versions of the calls only use one?
Steve Wechsler/Senior DB Administrator/Sanford C. Bernstein & Co.
"Never underestimate the power of human stupidity" - Lazarus Long
Support the Anti-SPAM amendment: http://www.cauce.org
> -----Original Message-----
> From: Michael Peppler [mailto:email@example.com]
> 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
> $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 Peppler -||- Data Migrations Inc.
> firstname.lastname@example.org -||- http://www.mbay.net/~mpeppler
> Int. Sybase User Group -||- http://www.isug.com
> Sybase on Linux mailing list: email@example.com