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