2012年3月20日 星期二

Perl DBI AutoCommit 問題

最近遇到一件怪事:

#!/usr/bin/perl

use sapnwrfc;
use utf8;
use Data::Dumper;
use Encode;
use DBI;
require "$ENV{HOME}/perl/setEnv.pl";

SAPNW::Rfc->load_config("$ENV{HOME}/perl/connPRD");
my $conn = SAPNW::Rfc->rfc_connect();

my $dbh = DBI->connect("$connectString", "$username", "$pass",{ RaiseError => 1, AutoCommit => 0 })
    or print "Can't connect to database: ", $DBI::errstr, "\n";

my $sqlDel = qq{delete from SAP_MARA};
my $sthDel = $dbh->prepare($sqlDel);
$sthDel->execute();

my $sql = qq{...              };
my $sth = $dbh->prepare($sql);

my $i;
my @dt;
my @matnr;

&main();

...

即使AutoCommit設為0,但是執行紅字時仍會自行commit,如果我將紅字放到main{} 中執行,就不會有AutoCommit現象...
實在很是奇怪???

沒有留言:

張貼留言