sorry for not writing execute there . I've created test scenario where I'm facing problem as shown below.I was able to resolve the problem by using do statement rather than prepare statement but could not figure out the reason behind it.
my $dbh = DBI->connect( "dbi:Sybase:server=$dbServer;hostname=$hostnam
+e; database=$ +database",$dbUser, $dbPasswd->[1],{AutoCommit => 1});
my $insertStatement = $dbh->prepare("INSERT INTO BatchFile (FileName,F
+ileStatusCode,FileDate,FileFormatCode,TotalRecords,LoadStartTime,Modi
+ +fiedDate,ModifiedBy) VALUES ('Akash',4,GetDate(),0,3,GetDate(),GetD
+at +e(),'FIX2MQ')") or $DBI::err and die($DBI::errstr);
my $updateStatement = $dbh->prepare("UPDATE BatchFile SET FileStatusC
++ode = ? ,ModifiedDate = GETDATE(),TotalRecords = ? WHERE BatchFileID
+ += ?");
for(my $x=0;$x < 5;$x++){
$insertStatement->execute() or die($DBI::errstr); my $id = $dbh->last_
+insert_id(undef,undef,undef,undef) or die "no inse +rt id $DBI::errst
+r $!"; print "ID : ",$id; update1($id); }
sub update1{
my $id = shift; $updateStatement->execute(6,1,$id) or die($DBI::errstr
+); }
$insertStatement->finish(); $updateStatement->finish(); my $rc = $dbh-
+>disconnect or die($DBI::errstr);