MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Visual Basic 6とデータベース - ODBCのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Visual Basic 6とデータベース - ODBC
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == ODBCは、異なるデータベース管理システムに対して統一的なアクセス方法を提供するミドルウェアである。<br> データソース名 (DSN) を介して接続設定を管理して、アプリケーションからデータベースを抽象化する。<br> <br> ODBCドライバを介して、SQL Server、Oracle、Access、その他様々なデータベースに接続できる。<br> <br> Visual Basic 6でのデータベースアクセス方法として、ADODBが主流であった。<br> ADODBはODBCを含む様々なデータソースに接続でき、Connectionオブジェクトによる接続管理、Recordsetオブジェクトによるデータ操作、CommandオブジェクトによるSQL実行という機能を提供する。<br> <br> トランザクション管理、パラメータ化クエリ、ストアドプロシージャの呼び出し等、実務で必要な機能も備えている。<br> エラーハンドリングについては、<code>On Error</code>構文と<code>Err.Description</code>を使用して実装する。<br> <br> 接続設定は、システムDSN、ファイルDSN、接続文字列で管理することができる。<br> 実運用では、セキュリティを考慮してファイルDSNや暗号化された接続文字列を使用することが推奨されている。<br> <br> Visual Basic 6でODBCを使用する場合、一般的にADODB (ActiveX Data Objects) を使用する。<br> ADODBは、ODBCを含む様々なデータソースに対して統一的なインターフェースを提供している。<br> <br> 代替手段として、RDO (Remote Data Objects) や DAO (Data Access Objects) も選択できるが、ADODBが最も一般的で機能が豊富である。<br> <br><br> == SQL Server == ==== SQL Serverへの接続 ==== <syntaxhighlight lang="vb"> ' SQL Serverへの接続を行う Private Function ConnectDatabase() As ADODB.Connection On Error GoTo ErrorHandler Dim conn As New ADODB.Connection ' 接続文字列の設定 conn.ConnectionString = "Driver={SQL Server};" & _ "Server=<DBサーバ名>;" & _ "Database=<データベース名>;" & _ "Uid=<ユーザID>;" & _ "Pwd=<パスワード>;" ' データベースに接続 conn.Open Set ConnectDatabase = conn Exit Function ErrorHandler: MsgBox "データベース接続エラー:" & vbCrLf & Err.Description, vbCritical Set ConnectDatabase = Nothing End Function </syntaxhighlight> <br> ==== レコードの取得 ==== <syntaxhighlight lang="vb"> ' レコードを取得する Private Sub GetRecords() On Error GoTo ErrorHandler Dim conn As ADODB.Connection Dim rs As New ADODB.Recordset ' データベースに接続 Set conn = ConnectDatabase() If conn Is Nothing Then Exit Sub ' SQLの実行 rs.Open "SELECT * FROM <テーブル名> WHERE <条件式>", conn, adOpenStatic, adLockReadOnly ' 結果の処理 Do While Not rs.EOF ' ここでレコードの処理 Debug.Print rs.Fields("列名").Value rs.MoveNext Loop CleanUp: ' リソースの解放 If Not rs Is Nothing Then If rs.State = adStateOpen Then rs.Close Set rs = Nothing End If If Not conn Is Nothing Then If conn.State = adStateOpen Then conn.Close Set conn = Nothing End If Exit Sub ErrorHandler: MsgBox "データ取得エラー:" & vbCrLf & Err.Description, vbCritical Resume CleanUp End Sub </syntaxhighlight> <br> ==== レコード更新 ==== <syntaxhighlight lang="vb"> ' レコードを更新する Private Sub UpdateRecord(ByVal ID As Long, ByVal NewValue As String) On Error GoTo ErrorHandler Dim conn As ADODB.Connection Dim cmd As New ADODB.Command ' データベースに接続 Set conn = ConnectDatabase() If conn Is Nothing Then Exit Sub ' コマンドの設定 With cmd Set .ActiveConnection = conn .CommandType = adCmdText .CommandText = "UPDATE <テーブル名> SET <列名> = ? WHERE ID = ?" .Parameters.Append .CreateParameter("@Value", adVarChar, adParamInput, 50, NewValue) .Parameters.Append .CreateParameter("@ID", adInteger, adParamInput, , ID) .Execute End With CleanUp: ' リソースの解放 If Not conn Is Nothing Then If conn.State = adStateOpen Then conn.Close Set conn = Nothing End If Exit Sub ErrorHandler: MsgBox "データ更新エラー:" & vbCrLf & Err.Description, vbCritical Resume CleanUp End Sub </syntaxhighlight> <br> ==== レコードの追加 ==== <syntaxhighlight lang="vb"> ' レコードを追加する Private Sub InsertRecord(ByVal Value1 As String, ByVal Value2 As Long) On Error GoTo ErrorHandler Dim conn As ADODB.Connection Dim cmd As New ADODB.Command ' データベースに接続 Set conn = ConnectDatabase() If conn Is Nothing Then Exit Sub ' コマンドの設定 With cmd Set .ActiveConnection = conn .CommandType = adCmdText .CommandText = "INSERT INTO <テーブル名> (<列名1>, <列名2>) VALUES (?, ?)" .Parameters.Append .CreateParameter("@Value1", adVarChar, adParamInput, 50, Value1) .Parameters.Append .CreateParameter("@Value2", adInteger, adParamInput, , Value2) .Execute End With CleanUp: ' リソースの解放 If Not conn Is Nothing Then If conn.State = adStateOpen Then conn.Close Set conn = Nothing End If Exit Sub ErrorHandler: MsgBox "データ追加エラー:" & vbCrLf & Err.Description, vbCritical Resume CleanUp End Sub </syntaxhighlight> <br> ==== レコードの削除 ==== <syntaxhighlight lang="vb"> ' レコードを削除する Private Sub DeleteRecord(ByVal ID As Long) On Error GoTo ErrorHandler Dim conn As ADODB.Connection Dim cmd As New ADODB.Command ' データベースに接続 Set conn = ConnectDatabase() If conn Is Nothing Then Exit Sub ' コマンドの設定 With cmd Set .ActiveConnection = conn .CommandType = adCmdText .CommandText = "DELETE FROM <テーブル名> WHERE ID = ?" .Parameters.Append .CreateParameter("@ID", adInteger, adParamInput, , ID) .Execute End With CleanUp: ' リソースの解放 If Not conn Is Nothing Then If conn.State = adStateOpen Then conn.Close Set conn = Nothing End If Exit Sub ErrorHandler: MsgBox "データ削除エラー:" & vbCrLf & Err.Description, vbCritical Resume CleanUp End Sub </syntaxhighlight> <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:その他]]
Visual Basic 6とデータベース - ODBC
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse