タイトル | : トランザクションを開始できない |
記事No | : 543 |
投稿日 | : 2003/11/12(Wed) 21:27 |
投稿者 | : こまったにゃんこ |
[OSのVer]:Windows2000 [VBのVer]:VB.NET 1.0 はじめまして。早速の質問で恐縮ですが宜しくお願いします。
サーバ:RedHat Linux7.2 DB:Postgres7.0.3 開発環境:Windows2000 接続方法:PostgreSQL用ODBC ADOを使用(ADO.NETではありません)
現象: プログラム内にてPostgresqlにADOを使い接続を行っています。 Insert等のSQLを実行する前にBeginTransを実行しているのですが デバックのブレークポイントを設定しステップインを使用し1行ずつ確認していくと BeginTransの個所にて「このセッションでは、これ以上のトランザクションを開始できません。」 とエラーが出ます。ブレークポイントを使用せず、普通に処理するとエラーも出ずにちゃんと BeginTransが成功しているようなのですが。 DBのOpen前にBeginTransを置いたり、2度BeginTransを使用したりはしていませんが、わざと 2度BeginTransを行うと同じエラーが出ます。 以下に省略していますが問題のソースを記述します。
意味のわかりづらい文章ですが宜しくお願い致します。
'********** Form呼び出し側のコーディング dim mclsComData As clsCommonData '共通データクラス
mclsComData = New comAdoDBcontrol.clsCommonData() '初期化
’DBのOpen If Not mclsComData.doConnection(mclsComData.AdoPosgre) Then '接続失敗 エラー処理 End If
’BeginTran If Not mclsComData.SetBeginTran(mclsComData.AdoPosgre) Then '失敗 エラー処理 End If
'********** クラス clsCommonDataの中身 'DB接続 Public Function doConnection(ByVal clsAdo As clsAdoPosgre) As Boolean Return clsAdo.doConnection() End Function
'DB切断 Public Function disConnect(ByVal clsAdo As clsAdoPosgre) As Boolean Return clsAdo.disConnect() End Function
'トランザクション開始 Public Function SetBeginTran(ByVal clsAdo As clsAdoPosgre) As Boolean ←ここでエラーが 起 こります Return clsAdo.SetBeginTran() End Function
'********** クラス clsAdoPosgreの中身 'DB接続 ReadOnly Property doConnection() As Boolean Get Try
''ファイルからDBへのUser等を取得し格納する変数 Dim strUserID As String Dim strPassID As String Dim strDSN As String Dim strDATABASE As String
'・・・省略 sConnectionString = "DSN=" & strDSN & ";" & _ "UID=" & strUserID & ";" & _ "PWD=" & strPassID & ";" & _ "DATABASE=" & strDATABASE & ";"
mMyConnection = New ADODB.Connection()
'DB接続 mMyConnection.Open(sConnectionString) mMyConnection.CursorLocation = 3 Catch e As Exception 'エラー処理 End Try Return True End Get End Property
'トランザクション開始処理 ReadOnly Property SetBeginTran() As Boolean Get Try mMyConnection.BeginTrans()
Catch eInvalid As InvalidOperationException 'エラー処理 Catch e As Exception 'エラー処理 End Try Return True End Get End Property
|