○VB6 RDO (Remote Data Objects)
ODBCを介してデータベースを操作するための部品
■データベース名 : testDB
▼操作するデータベースの構造
create table table1(field1 char(20),field2 char(20));
▼作成したODBCデータソース名
testODBCDriver
▼VB6の参照設定にて参照します
Microsoft Remote Data Object *.*
■接続・切断
'ODBCドライバに対する接続文字列
Const ConnectionString As String = "DSN=testODBCDriver;UID=sa;PWD=;DATABASE=testDB;"
Dim rdoConnection_obj As rdoConnection
'接続
Set rdoConnection_obj = rdoEnvironments(0).OpenConnection("", rdDriverNoPrompt, True, ConnectionString)
'タイムアウト時間の設定
rdoConnection_obj.QueryTimeout = 360
'切断
rdoConnection_obj.Close
■結果を返さないSQL文の実行
'トランザクションの開始
rdoConnection_obj.Execute "BEGIN TRANSACTION sp", rdExecDirect
'結果を返さないSQL文の実行
rdoConnection_obj.Execute "INSERT INTO table1(field1,field2) VALUES('aaaaa','bbbbb');"
'トランザクションの終了
rdoConnection_obj.Execute "COMMIT TRANSACTION sp", rdExecDirect
'ロールバック
'rdoConnection_obj.Execute "ROLLBACK TRANSACTION sp", rdExecDirect
■結果を返すSQL文の実行
Dim resultset_obj As rdoResultset
'キーセットタイプでレコードを取得
Set resultset_obj = rdoConnection_obj.OpenResultset("Select * From table1;", rdOpenKeyset, rdConcurLock)
'セットの先頭に移動
resultset_obj.MoveFirst
Do Until resultset_obj.EOF 'EOFまでループ
'セットの内容を表示
Debug.Print resultset_obj![field1], resultset_obj![field2]
resultset_obj.MoveNext '次の行に移動
Loop
resultset_obj.Close
■新しい行の追加・更新
Dim resultset_obj As rdoResultset
'静的タイプでレコードを取得
Set resultset_obj = rdoConnection_obj.OpenResultset("Select * From table1;", rdOpenDynamic, rdConcurLock)
resultset_obj.AddNew '新しいレコードを追加
'resultset_obj.Edit '現在の位置のレコードを編集
resultset_obj![field1] = "test"
resultset_obj![field2] = "test2"
resultset_obj.Update '更新
'resultset_obj.CancelUpdate '変更結果の破棄
resultset_obj.Close
■オプション
▼カーソルの種類
rdOpenForwardOnly 前方専用タイプ
rdOpenStatic 静的タイプ
rdOpenKeyset キーセットタイプ
rdOpenDynamic 動的タイプ
▼ロックタイプ
rdConcurLock 排他的同時実行。
rdConcurReadOnly 読み取り専用
▲トップページ
>
Visual BASIC と C#