tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルADOによるExcel操作でのトランザクション
記事No7860
投稿日: 2008/07/25(Fri) 19:42
投稿者モウリーニョ
お世話になります。

現在、VB2005にて、ADOを用いてローカルのExcelファイルにデータを出力する処理を行っています。
その処理において、トランザクションにて管理したいと思っているのですが、
どうもうまく動いてくれません。(エラーは出ないが、Insertが行われている。)

コードは下記のようになります。

Dim con As New OleDbConnection
Dim cmd As New OleDbCommand
Dim tra As OleDbTransaction

Dim filePath As String = "C:\TEST.xls"

con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + _
                            "Data Source=" + filePath + ";" + __
                            "Extended Properties=""Excel 8.0;HDR=YES;"""

con.Open()
tra = con.BeginTransaction()
cmd.Connection = con
cmd.Transaction = tra

cmd.CommandText = "INSERT INTO [sheet1$] VALUES('TEST', 'ETC')

cmd.ExecuteNonQuery()

tra.Rollback()

con.Close()

上記ソースでは、'TEST'と'ETC'が挿入されない結果が得られると思ったのですが、入ってしまってます。

いろいろと調べてみたのですが、明確な答えにたどり着けておりません。
参考情報等でもよいので、教えていただければと思っております。

よろしくお願い致します。

[ツリー表示へ]
タイトルRe: ADOによるExcel操作でのトランザクション
記事No7861
投稿日: 2008/07/25(Fri) 21:26
投稿者魔界の仮面弁士
> 現在、VB2005にて、ADOを用いてローカルのExcelファイルにデータを出力する処理を行っています。
それは ADO では無いような…。ADO.NET ですよね?

> その処理において、トランザクションにて管理したいと思っているのですが、
> どうもうまく動いてくれません。(エラーは出ないが、Insertが行われている。)
xls や txt への出力時は無効だったかと。

[ツリー表示へ]
タイトルRe^2: ADOによるExcel操作でのトランザクション
記事No7863
投稿日: 2008/07/26(Sat) 09:44
投稿者モウリーニョ
> > 現在、VB2005にて、ADOを用いてローカルのExcelファイルにデータを出力する処理を行っています。
> それは ADO では無いような…。ADO.NET ですよね?
ADO.NETです(^^;)

> > その処理において、トランザクションにて管理したいと思っているのですが、
> > どうもうまく動いてくれません。(エラーは出ないが、Insertが行われている。)
> xls や txt への出力時は無効だったかと。
やはり無理なんですね。。。
処理前にファイルをコピーしておいて、対応したいと思います。

魔界の仮面弁士さん、ありがとうございました。

[ツリー表示へ]