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