[CDBI] Problem calling update on a MS SQL Server DB

Steven Mackenzie <steven.mackenzie-5/VXW7sOv/[email protected]>
Newsgroups gmane.comp.lang.perl.modules.class-dbi
Message-ID <[email protected]>
Hello,

I'm using CDBI 3.0.6 (latest in the Active State PPM repository), and
I'm doing some testing against MS SQL Server 2005 (Express version) as
the DB.

I initially built and tested my code against SQLite, but am trying
another DB to see if there are any performance gains to be had. SQLite
seems to become very slow for inserting/commiting into tables with 10s
of thousands of rows in.

So far the only change to my code is in the base class where I have
use base qw( Class::DBI::MSSQL );
#use base qw( Class::DBI ); # currently using 3.0.6 from ActiveState ppm.

The error I get seems to be because CDBI has 'quoted' the primary key
parameter value in the update:

(Can't update 1: DBD::ODBC::st execute failed: [Microsoft][ODBC SQL
Server Driver][SQL Server]String or binary data would be truncated.
(SQL-22001)
[Microsoft][ODBC SQL Server Driver][SQL Server]The statement has been
terminated. (SQL-01000)(DBD: st_execute/SQLExecute err=-1) [for
Statement "UPDATE DiscoverySetResources
SET    title = ?
WHERE  dsrid=?
" with ParamValues: 1="Active Navigation :: Information Management
Solutions", 2='1'] at C:/Perl/site/lib/DBIx/ContextualFetch.pm line 52.
 at
C:\cvs\pwebcosm\2.2\ANPerl\AnalysisFramework\Analysis\/AnalyserThematic.pm
line 221

The class definition for my DB class includes these lines:
__PACKAGE__->table('DiscoverySetResources');
__PACKAGE__->columns(Primary => qw/dsrid/);
__PACKAGE__->columns(Essential => qw/rid dsid StateId RetrievalUrl
SignificantContentFingerprint DsRelativeUrl OrigUrl HttpStatus Title
Depth IndirectCount LastRequested IsDiscovered /);

Does anyone have any idea how to prevent or control the quoting of
integer parameter values?

Or do I have a different kind of problem??

Thanks for any help,
Steven
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.