Dale,

There was a discussion and patch on this a while ago.  Honestly, I don't
remember the specifics but it was determined that a literal should be
surrounded by " instead of ', but this, I can see, is definitely a
problem...

I, unfortunately, don't remember why we did this...and I can't seem to find
the discussion.  I can, I think, change it to allow for either:
        "abd"
        or
        'abd'
        or
        ' this "is a test" '
        or
        " 'this is a test' "
(i.e. if you start with a " then it must finish on a " and if you start with
a ' you must finish with a ')

Thoughts/comments?

Jeff

> -----Original Message-----
> From: Dale Couch [mailto:[EMAIL PROTECTED]]
> Sent: Monday, January 28, 2002 8:37 AM
> To: [EMAIL PROTECTED]
> Cc: [EMAIL PROTECTED]
> Subject: DBD::ODBC, Datetime strings and placeholders
>
>
> I am having problems with the latest DBD::ODBC v0.32 or possibly
> DBI 1.201.
>
> If I try to use a string datetime value as demonstrated below, something
> seems to get confused about place holders and dates.  The errors are
> different based upon where you put the string datetime value.
>
> A DBI trace of the code below shows that the SQL statement gets converted
> from
>
> SELECT DATEDIFF(s,'1970-01-01 00:00:00.001',GETDATE()) 'seconds_since'
>
> to the following
>
> SELECT DATEDIFF(s,'1970-01-01 00??.001',GETDATE()) 'seconds_since'
>
> I am not sure where to attempt to make a patch, suggested locations/fixes
> would be appreciated.
>
> Standard version stuff:
> perl: v5.6.1 built for MSWin32-x86-multi-thread (ActiveState v631)
> DBI: 1.201
> DBD::ODBC: 0.32
>
> Sample Code (fill in your DB and user info as needed to test, no
> specific DB
> required, Syntax is valid on MS SQL 2000 server):
>
> #!perl -w
> use strict;
> use DBI;
> use DBD::ODBC;
>
> my $sServerName = "";
> my $sDBName = "";
> my $sUserName = "";
> my $sPassword = "";
>
> my $oConnection = DBI->connect("dbi:ODBC:driver={SQL
> Server};Server=$sServerName;database=$sDBName;uid=$sUserName;pwd=$
> sPassword;");
> $oConnection->{PrintError} = 1;
>
> my $qQuery = $oConnection->prepare(q{SELECT DATEDIFF(s,'1970-01-01
> 00:00:00.001',GETDATE()) 'seconds_since'});
> $qQuery->execute();
> my $aRow = $qQuery->fetchrow_arrayref();
> if ($aRow) {
>       print $aRow->[0];
> } else {
>       print "No Results";
> }
> $qQuery->finish();
> $oConnection->disconnect();
>
> Thanks
>
> Dale
>
> _________________________________________________________________
> Send and receive Hotmail on your mobile device: http://mobile.msn.com
>
>

Reply via email to