出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

ODBC+Accessでのトランザクションの利用   tokuさん [2004/09/14 16:55:08] [4629]
  Re:ODBC+Accessでのトランザクションの利用   暇人さん [2004/09/15 12:02:04] [4630]
    Re:ODBC+Accessでのトランザクションの利用   tokuさん [2004/09/16 13:25:50] [4637]

[4629] ODBC+Accessでのトランザクションの利用
投稿者:tokuさん 2004/09/14 16:55:08
こんにちは、tokuと申します。
よろしくお願いします。

早速ですが、
現在、ODBC+Accessでデータを追加するコードを
書いています。
データを追加するときに成功時と失敗時で
コミット、ロールバックの処理を行いたいのですが、
以下のエラーがでてしまいます。
-----------------------------------------------------
エラー タイプ
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver]属性を設定できません。
/ankate/resp2.asp, line 20
------------------------------------------------------
ソースは
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DSN=mbo" //DSN名
adOpenDynamic = 2
adLockPessimistic = 2
adCmdTableDirect = 512
Set oRSt = Server.CreateObject("ADODB.Recordset")
' アンケートテーブルに追加
oRSt.Open "T_アンケート", oConn, adOpenDynamic, adLockPessimistic, adCmdTableDirect

'トランザクションの開始
oConn.BeginTrans //20行目

oRSt.AddNew
If Len(Session("optTeam")) > 0 Then
oRSt("所属") = Session("optTeam")
End If
If Len(Session("optKind")) > 0 Then
oRSt("社員区分") = Session("optKind")
End If
For I = 1 To 10
tempstr1 = "設問" & CStr(I)
tempstr2 = "radQuestion" & CStr(I)
If Len(Session(tempstr2)) > 0 Then
oRSt(tempstr1) = Session(tempstr2)
End If
Next
If Len(Session("txtYoubou")) > 0 Then
oRSt("要望等") = Session("txtYoubou")
End If
oRSt.Update

If Err.Number <> 0 then
oConn.RollbackTrans
%>
<%
Else
oConn.CommitTrans
   :省略
--------------------------------------------
「oConn.BeginTrans」のところが20行目になります。
以前にODBCを利用しなかったときはうまくいったのですが、
今回、ODBCを利用したらエラーがでるようになりました。

申し訳ありませんが、何かアドバイスを
いただけないでしょうか?

[4630] Re:ODBC+Accessでのトランザクションの利用
投稿者:暇人さん 2004/09/15 12:02:04
> 「oConn.BeginTrans」のところが20行目になります。
> 以前にODBCを利用しなかったときはうまくいったのですが、
> 今回、ODBCを利用したらエラーがでるようになりました。
>
> 申し訳ありませんが、何かアドバイスを
> いただけないでしょうか?
>
プロバイダ変えたら動かなくなったという事は、変更したプロバイダがBeginTransをサポートしていない可能性があります

Connection オブジェクトの Properties コレクションに
"Transaction DDL" というプロバイダ定義のプロパティが表示されているかどうかを確認してください。
このプロパティが表示されていれば、そのプロバイダはトランザクションをサポートしています。

との事です。以上MSDNLibraryより抜粋

[4637] Re:ODBC+Accessでのトランザクションの利用
投稿者:tokuさん 2004/09/16 13:25:50
アドバイスいただきありがとうございます。
"Transaction DDL" というプロバイダ定義のプロパティが表示
されないので、サポートしていないみたいです。



TreeBBS For ASP V.0.1.3
Program By YasNet