> Dan,

> I ran into this on a web back-end I was programming some time 
> back. I wish I had better news - nobody seemed to have an answer
> that worked when it came to ODBC (not just PERL's ODBC interface
> - ODBC in general). I didn't try ADO. I understand it will work 
> with DB Library connections, but that was not feasible in my 
> situation. I wound up putting varchar columns in a separate, 
> related table for my solution so that more space could be 
> allocated if it ran over 8000 characters. Not a pretty solution,
> but it did meet my needs.

> However, if someone answers off the news group with a solution 
> for this, please pass it along to me - I'm sure I'll run into 
> it again sometime.

> Steve Howard

Thanks Steve. 

I was having good luck doing multiple commands on the same connection with
OLE DB. It usually takes multiple connections with ODBC, but at least in
this case, that didn't help either.

Right now the only workaround I have is to create a trace file of all the
T-SQL statements, close the cursor, then process that file before closing
the connection. It will hold me over on this one, but I would still love to
find better way.

Is there a DBD::MSSQL around somewhere?

Best Regards,

Dan Sharpe


-----Original Message-----
From: Dan Sharpe [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, March 07, 2001 5:47 PM
To: '[EMAIL PROTECTED]'
Subject: MS-SQL 7.0 DBI/ADO Blob Data Types


Do you know of any issues with DBI, ADO (OLE DB) or DBD::ODBC doing updates
to a MS-SQL 7.0 database that has some text "blob" columns? Are there any
patches?

I've never had any trouble with inserts to MS-SQL 7.0, except for occasional
trunction errors, so I decided to use it for other things. Anyway, I have a
table that I'm trying to do updates with that has two text "blob".

I keep getting a timeout on the execute method.

Changing the text fields to varchar works, but I need to come up with
something that supports recordsets over 8k (not always an easy prospect in
MS-SQL 7, but none of the test data I'm working with is close to that
limit).

I've tried every combination of OLE DB and ODBC that I can think of, using
T-SQL, Stored Procedures, and Binded calls. The DBI Trace just shows an
Error 1 - can't execute statement. Here's the error:

03/07/2001 18:35:33
update WALKER_TEMP set ANNOUNCEDDATE='2001-03-07' where ID = '3a9e6bac79'
DBD::ADO::db do failed: Can't execute statement 'update WALKER_TEMP set
ANNOUNCEDDATE='2001-03-07' where ID = '3a9e6bac79'': -2147217871: OLE
exception from "Microsoft OLE DB Provider for SQL Server":

Timeout expired

Win32::OLE(0.1401) error 0x80040e31
    in METHOD/PROPERTYGET "Execute"
-2147217871:  at ../dbconnect.pl line 122.

DBH Error: 1 Can't execute statement 'update WALKER_TEMP set
ANNOUNCEDDATE='2001-03-07' where ID = '3a9e6bac79'': -2147217871: OLE
exception from "Microsoft OLE DB Provider for SQL Server":

Timeout expired

Win32::OLE(0.1401) error 0x80040e31
    in METHOD/PROPERTYGET "Execute"
-2147217871:

I'm not updating the text column in this case, but did read all the columns
in the table. The same code works fine if these columns are changed to
varchar.

Any Ideas?

Dan

Reply via email to