Dale, It's a DBD::ODBC issue and should probably be fixed. However, I do know there was a reason it was requested to be changed from a ' to a ". So, I'm going to try to make it work for both...
It may have had something to do with someone having a table or column which had a ? or : in it... I've patched it and I'd like to test it a bit before releasing. Regards, Jeff > -----Original Message----- > From: Dale Couch [mailto:[EMAIL PROTECTED]] > Sent: Monday, January 28, 2002 4:14 PM > To: [EMAIL PROTECTED]; [EMAIL PROTECTED] > Subject: RE: :ODBC, Datetime strings and placeholders > > > Double quotes do not work as literal identifiers in MS SQL > Server, so adding > support for the single quote would be very helpful. > > Please let me know if you need anything or need to run some > tests. Out of > curiosity, is this a DBI or DBD::ODBC issue? > > Thanks > > Dale > > >From: "Jeff Urlwin" <[EMAIL PROTECTED]> > >To: "Dale Couch" <[EMAIL PROTECTED]>, <[EMAIL PROTECTED]> > >CC: <[EMAIL PROTECTED]> > >Subject: RE: :ODBC, Datetime strings and placeholders > >Date: Mon, 28 Jan 2002 15:13:44 -0500 > > > >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 > > > > > > > > > > > > > _________________________________________________________________ > Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp.
