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: "Cumming, Joe" <Joe dot Cumming at citadelgroup dot com>
Subject: Problem with DBD::Sybase using Sybase IQ
Date: Mar 23 2005 2:17PM

 

Hello,

 

I have a problem running execute() in DBD::Sybase when it has bind
parameters.

 

The following code

 

my $sqlstmt =<<'EOST';

INSERT INTO creditqr.Tenor (MartModifiedID, MartSnapDate, ShortName,
Tenor, TenorID)

VALUES (?,?,?,?,?);

EOST

 

my $stmt = $dbi->prepare($sqlstmt);

 

my @values = ('jc', "2005-02-28", "Test", 100, 500);

 

$stmt->execute(@values);

 

Produces the error:

 

DBD::Sybase::st execute failed: Server message number=21 severity=14
state=0 line=0 text=ASA Error -1000187: Unable to implicitly convert
column 'MartModifiedID' to datatype (varchar) from datatype (integer).

*       (db_sqlins.cxx 10136)  at dbitst.pl line 16.

 

 

However, the code

 

my $sqlstmt =<<'EOST';

INSERT INTO creditqr.Tenor (MartModifiedID, MartSnapDate, ShortName,
Tenor, TenorID)

VALUES = ('jc', "2005-02-28", "Test", 100, 500);

EOST

 

my $stmt = $dbi->prepare($sqlstmt);

 

$stmt->execute();

 

works fine.

 

 

Has anyone come across anything similar and know of a fix?

 

Thanks,

 

Joe