Access2007 プロバイダ オープンMODE
Imports System.Data.OleDb
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim cn As New OleDbConnection
Dim da As OleDbDataAdapter
Dim ds As New DataSet
Dim buil As New OleDbConnectionStringBuilder
Dim i, j As Integer
Try
'Access 2007 プロバイダ Provider=Microsoft.ACE.OLEDB.12.0
'(データベース接続をウィザード・ダイアログで設定していくとこの「ヘルプ」が参照できる)
Access2000(データエンバイロメント(ウィザード)だっけ?で「ヘルプ」が参照できる)のものと変更はない様だ。
MSのヘルプに記載されている内容↓
'[Read] - 読み取り専用。
'[ReadWrite] - 読み取りアクセス権および書き込みアクセス権。
'[Share Deny None] - ほかのユーザーに対して、読み取りアクセス権および書き込みアクセス権を拒否することができません。(これが規定?)
'[Share Deny Read] - ほかのユーザーは読み取りモードで開くことができません。
'[Share Deny Write] - ほかのユーザーは書き込みモードで開くことができません。
'[Share Exclusive] - ほかのユーザーは読み取り/書き込みモードで開くことができません。
'[Write] - 書き込み専用。
'MSのヘルプに記載されている内容↑
cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\Database1.accdb;" & ";Mode=Share Deny None;"
Debug.WriteLine(cn.ConnectionString)
'テスト
buil.ConnectionString = cn.ConnectionString
Debug.WriteLine("mode;;" & buil.Item("Mode"))
cn.Open()
cn.Close()
da = New OleDbDataAdapter("SELECT * FROM dbo_Customers", cn)
For i = 0 To 5
da.Fill(ds, "Customers") '目的のデータを取得してデータセットに格納後自動的に接続は解除される
If ds.Tables(0).Rows.Count >= 1 Then
Debug.WriteLine(ds.Tables(0).Rows.Count.ToString)
Debug.WriteLine(ds.Tables(0).Rows(ds.Tables(0).Rows.Count - 1)(0).ToString)
End If
ds.Clear() 'MSDNから→すべてのテーブル内のすべての行を削除して、データの DataSet を消去します。
ds.Dispose()
'ds.Dispose() を行ってもdsは初期化されていない あくまで「リソースを解放します」ということ。
'開放したらデータの DataSet を消去するのでは?と思うが、「消去していない」ので注意!
'ds.Clear()をしないと、次々と後ろに追加?前に挿入?でたらめ追加?でdsは増加してしまう。
Next
Debug.WriteLine("OPEN")
Catch ex As Exception
Debug.WriteLine(ex.Message)
Finally
ds.Clear() 'MSDNから→すべてのテーブル内のすべての行を削除して、データの DataSet を消去します。
ds.Dispose()
cn.Close()
End Try
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
|
|