• ベストアンサー

ActivePerl+SQLServerでトランザクション制御をしたいのですが。。。

ActivePerl(5.6.1)で、SQLServer2000に接続してデータ更新を行う際に、トランザクションを制御して、コミット/ロールバックを使いたいと思っています。 データベースへの接続はODBCです。 まずは auto commit の設定をオフにしよう・・・と思ってやってみたのですが、これが成功しません。 何かよい方法はないでしょうか?よろしくお願いします。 【環境】WinNT,IIS

質問者が選んだベストアンサー

  • ベストアンサー
  • bubu-chan
  • ベストアンサー率100% (3/3)
回答No.1

データベースに接続後に、以下を記述してみてください。 ----------------------------------------------------------------------  @Results = $odbc->GetFunctions(    $odbc->SQL_API_SQLTRANSACT, $odbc->SQL_API_SQLSETCONNECTOPTION  );  print "トランザクションのサポート ⇒  $Results[0]\n";  print "接続オプションセット関数のサポート ⇒  $Results[1]\n"; ---------------------------------------------------------------------- これで、両方とも「1」が表示されれば、以下の要領でトランザクションの制御を行うことができます。 ----------------------------------------------------------------------  # オートコミットOFF  $odbc->SetConnectOption($odbc->SQL_AUTOCOMMIT, 0)  # コミット  $odbc->Transact($odbc->SQL_COMMIT);  # ロールバック  $odbc->Transact($odbc->SQL_ROLLBACK); ----------------------------------------------------------------------

yuyu-chan
質問者

お礼

できました!ありがとうございました。

関連するQ&A