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: "Raju, Ramakrishna (Equity)" <ramakrishna_raju at ml dot com>
Subject: RE: Problem with DBD::Sybase using Sybase IQ
Date: Mar 23 2005 5:16PM

Joe,
 
    You should be using the bind_param() to specify the type of the parameter, like
 
    $stmt->bind_param( 1, "jc", SQL_VARCHAR );
    $stmt->bind_param( 2, "2005-02-28", SQL_DATETIME );
...
...
 
    and then,
 
    $stmt->execute();
 
    At the top, instead of "use DBI;" , say "use DBI qw(:sql_types);" . This should import the sql types into your .pl .
 
Ram

[Raju, Ramakrishna (Equity)]  -----Original Message-----
From: owner-sybperl-l@peppler.org [mailto:owner-sybperl-l@peppler.org]On Behalf Of Cumming, Joe
Sent: Wednesday, March 23, 2005 9:17 AM
To: sybperl-l@peppler.org
Subject: Problem with DBD::Sybase using Sybase IQ



 

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
--------------------------------------------------------

If you are not an intended recipient of this e-mail, please notify the sender, delete it and do not read, act upon, print, disclose, copy, retain or redistribute it. Click here for important additional terms relating to this e-mail.     http://www.ml.com/email_terms/
--------------------------------------------------------