Dear all,
Here is the code that I used to test ODBC operation. The commented portion is the
source of error. The 1st statement can be execute without error but the 2nd always has
error. When I modify the 1st statement to fill-up the 3 fields, the same error
occurred.
This script work on a table call "RealTime" which consists of 3 fields:
Index (Numeric)
timestamp (datetime)
Data (Numeric)
Version of DBI::ODBC is 0.28
ActiveState perl build 633 ver. 5.6.1
MDAC ver. 2.1
MsAccess Driver ver. 4.00.5303.01
-- Start of Error Message --
DBD::ODBC::st execute failed: [Microsoft][ODBC Microsoft Access Driver] Syntax error
in UPDATE statement. (SQL-37000)(DBD: st_execute/SQLExecute err=-1) at sample.pl line
32.
DBD::ODBC::st execute failed: [Microsoft][ODBC Microsoft Access Driver] Syntax error
in UPDATE statement. (SQL-37000)(DBD: st_execute/SQLExecute err=-1) at sample.pl line
32.
Issuing rollback() for database handle being DESTROY'd without explicit disconnect().
--- End of Error Message --
--- Start of Script ---
#! /usr/bin/perl
use DBI qw(:sql_types) ;
my $DBName = '\\\\7920CCJ70392\\C$\\TEMP\\data.mdb' ;
my $DSN = "driver=Microsoft Access Driver (*.mdb);dbq=$DBName" ;
my $dbh = DBI->connect( "dbi:ODBC:$DSN", "", "",
{RaiseError => 1, PrintError => 1, AutoCommit => 0} ) ||
die "Unable to connect: " . $DBI::errstr . "\n" ;
my $sth = $dbh->prepare(q{
INSERT INTO RealTime (Index, Data) VALUES (?, ?)
}) || die $dbh->errstr ;
# my $sth_upd = $dbh->prepare(q{
# UPDATE RealTime SET timestamp = ? WHERE Index = ?
# }) || die $dbh->errstr ;
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime ;
$ODBCDate = sprintf("{ts '%4d-%02d-%02d %02d:%02d:%02d'}",
$year + 1900, $mon, $mday, $hour, $min, $sec);
print "\n\n\n$ODBCDate\n\n\n" ;
$rv = $sth->execute(101, 0) ;
# $rv = $sth_upd->bind_param(1, $ODBCDate, SQL_DATETIME) ;
# $rv = $sth_upd->bind_param(2, 101) ;
# $sth_upd->execute ;
$dbh->commit || die $dbh->errstr ;
$dbh->disconnect ;
--- End of Script ---
--- On Mon 09/16, Jeff Urlwin wrote:
From: Jeff Urlwin [mailto: [EMAIL PROTECTED]]
To: [EMAIL PROTECTED], [EMAIL PROTECTED]
Date: Mon, 16 Sep 2002 08:59:52 -0400
Subject: RE: Syntax error in INSERT / UPDATE statements
> Please give an example of the code. It very much depends upon the
> database
> you are connecting to, the version of the ODBC driver and, of course,
> your
> code. Since you are using Access, specifying the version of Access and
> the
> version of your ODBC driver *may* be helpful, but Access has had good
> support for the ODBC date formatting for a while now. More information
> would be helpful, including the error message itself with your code.
> Also,
> it would be good to know the version of DBI and DBD::ODBC you are using.
> I
> suspect DBD::ODBC 0.28, if you are using ActiveState perl and you used
> ppm
> to install.
>
> Regards,
>
> Jeff
>
>
------------------------------------------------
Changed your e-mail? Keep your contacts! Use this free e-mail change of address
service from Return Path. Register now!