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: RE: Problem with DBD::Sybase using Sybase IQ
Date: Mar 23 2005 5:29PM

 

Thanks Rama, I'll try that out.

 

Can I ask a follow-up question?

 

I cane across this error while trying to get Class::DBI to work with
Sybase IQ. The code below is how Class::DBI does its updates.

Have you (or anyone) been able to get Class::DBI to work with Sybase IQ.

 

 

Thanks in advance,

 

Joe

 

________________________________

From: Raju, Ramakrishna (Equity) [mailto:ramakrishna_raju@ml.com] 
Sent: 23 March 2005 17:16
To: Cumming, Joe; sybperl-l@peppler.org
Subject: RE: Problem with DBD::Sybase using Sybase IQ

 

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/

________________________________





------------------------------------------------------------------------
---------------------

The information contained in this transmission and any attached
documents is privileged, confidential and intended only for the use of
the individual or entity named above. If the reader of this message is
not the intended recipient, you are hereby directed not to read the
contents of this transmission, and are hereby notified that any
disclosure, copying, distribution, dissemination or use of the contents
of this transmission, including any attachments, or the taking of any
action in reliance thereon, is strictly prohibited. If you have received
this communication in error, please notify the sender and/or Citadel
Investment Group (Europe) Ltd immediately by telephone at +44 (0) 20
7645 9700 and destroy any copy of this transmission.

Citadel Investment Group (Europe) Ltd is authorised and regulated by the
Financial Services Authority (FSA Firm Ref No 190260).
Registered in England. Registration No. 3666898.
Registered Office: 10th Floor, 2 George Yard, Lombard Street, London
EC3V 9DH