DBD::Sybase datatype issue

Sharif Islam <[email protected]> Thu, 03 Apr 2008 13:01:22 -0500
Newsgroups gmane.comp.lang.perl.modules.dbi.sybase
Message-ID <[email protected]>
I am using DBD:Sybase on a linux machine querying against MSSQL 2005.
My goal is to get the changed rows in a particular table. I created a 
stored procedure which works fine in SQL using the
min_active_rowversion 
(http://msdn2.microsoft.com/en-us/library/bb839514.aspx).

I am not sure if DBD::Sybase is interpreting this datatype correctly
or rather if I am using the incorrect datatype.

Here's my code:

#!/usr/bin/perl
use strict ;
use DBI qw/:sql_types/;
use Data::Dumper;

my ($dbh, $sth, @data, $line) ;
my ($url, $id, $link);
my @url;

my $SQL_server   = "myserver" ;
my $SQL_username = "username" ;
my $SQL_password = "password" ;

$dbh = DBI->connect("dbi:Sybase:server=$SQL_server",
                        $SQL_username,
                        $SQL_password,
                        {PrintError => 1});

die "Unable for connect to server $DBI::errstr" unless $dbh;

$dbh->do("use myTable"); # Set the database to use.

   my $qry="SELECT min_active_rowversion()";
   my $sth = $dbh->prepare($qry);
   $sth->execute ;
   my @row = $sth->fetchrow_array ;
   $sth->finish() ;

   # run the stored proc
   my $sp_qry = "EXEC Find_Changed_rows ?" ;
   my $sth1 = $dbh->prepare($sp_qry) ;
   $sth1->bind_param(1, $row[0],SQL_TIMESTAMP);
   $sth1->execute($sp_qry);

When I run this:

DBD::Sybase::st execute failed: Server message number=257 severity=16 
state=3 line=0 server=MYSERVER procedure=Find_Changed_rows text=Implicit 
conversion from data type char to timestamp is not allowed. Use the 
CONVERT function to run this query. at track_changes.pl line 35


I would appreciate some help. Thanks.

--s