ADO(ActiveX Data Objects)とは?意味をわかりやすく簡単に解説
スポンサーリンク
ADO(ActiveX Data Objects)とは
ADO(ActiveX Data Objects)はマイクロソフト社が提供するデータアクセス技術の一つです。ADOを使用することで、様々なデータソースに対して統一的な方法でアクセスすることができます。
ADOはOLEDBプロバイダを介してデータベースに接続します。OLEDBは様々なデータソースに対する統一的なアクセス方法を提供するための仕様です。
ADOを使用するにはADOオブジェクトを使用します。主要なADOオブジェクトにはConnection、Command、Recordset、Fieldなどがあります。
Connectionオブジェクトはデータソースへの接続を確立するために使用します。CommandオブジェクトはSQLクエリやストアドプロシージャを実行するために使用します。
Recordsetオブジェクトはデータソースから取得したデータを保持するために使用します。FieldオブジェクトはRecordsetオブジェクト内の個々のフィールドを表します。
ADOを使用したデータアクセス方法
ADOを使用したデータアクセス方法に関して、以下3つを簡単に解説していきます。
- ADOを使用したデータベース接続の確立方法
- ADOを使用したSQLクエリの実行方法
- ADOを使用したデータの取得と更新方法
ADOを使用したデータベース接続の確立方法
ADOを使用してデータベースに接続するにはまずConnectionオブジェクトを作成する必要があります。Connectionオブジェクトを作成する際には接続文字列を指定します。
接続文字列にはプロバイダ名、データソース名、ユーザーID、パスワードなどの情報を含めます。接続文字列の具体的な内容は使用するデータベースやOLEDBプロバイダによって異なります。
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.Open "Provider=SQLOLEDB;Data Source=MySQLServer;Initial Catalog=MyDatabase;User ID=MyUserID;Password=MyPassword;"
スポンサーリンク
ADOを使用したSQLクエリの実行方法
ADOを使用してSQLクエリを実行するにはConnectionオブジェクトを使用してデータベースに接続した後、Commandオブジェクトを作成します。CommandオブジェクトのCommandTextプロパティにSQLクエリを指定し、Executeメソッドを呼び出すことでクエリを実行できます。
SELECTクエリを実行する場合はCommandオブジェクトのExecuteメソッドを呼び出した後、返されたRecordsetオブジェクトを使用してデータを取得します。INSERTやUPDATEなどのクエリを実行する場合はExecuteメソッドを呼び出すだけで済みます。
Dim cmd As ADODB.Command
Set cmd = New ADODB.Command
cmd.ActiveConnection = conn
cmd.CommandText = "SELECT * FROM MyTable"
Dim rs As ADODB.Recordset
Set rs = cmd.Execute
ADOを使用したデータの取得と更新方法
ADOを使用してデータを取得するにはRecordsetオブジェクトを使用します。RecordsetオブジェクトはSQLクエリの実行結果を保持しており、Recordsetオブジェクトのフィールドにアクセスすることでデータを取得できます。
データを更新する場合はRecordsetオブジェクトの編集モードに切り替えた上で、フィールドの値を変更し、Updateメソッドを呼び出すことで更新が反映されます。新しいレコードを追加する場合はAddNewメソッドを呼び出した後、フィールドの値を設定し、Updateメソッドを呼び出します。
rs.MoveFirst
While Not rs.EOF
Debug.Print rs.Fields("MyField").Value
rs.MoveNext
Wend
rs.AddNew
rs.Fields("MyField").Value = "New Value"
rs.Update
ADOのメリットとデメリット
ADOのメリットとデメリットに関して、以下3つを簡単に解説していきます。
- ADOを使用することのメリット
- ADOを使用する際の注意点
- ADOの代替技術との比較
ADOを使用することのメリット
ADOを使用することの最大のメリットは様々なデータソースに対して統一的な方法でアクセスできる点です。ADOを使用すれば、別々のデータアクセス技術を使い分ける必要がなくなります。
また、ADOはマイクロソフト社が提供している技術であるため、Windowsプラットフォームとの親和性が高いというメリットもあります。Visual BasicやVBScript、ASPなどのマイクロソフト社の技術と組み合わせて使用することで、効率的な開発が可能になります。
スポンサーリンク
ADOを使用する際の注意点
ADOを使用する際にはパフォーマンスに注意する必要があります。ADOは便利な反面、大量のデータを扱う場合にはパフォーマンスが低下する可能性があります。
また、ADOを使用してデータベースにアクセスする際にはセキュリティにも注意が必要です。接続文字列にユーザーIDやパスワードを含める場合は適切な方法で暗号化するなどの対策が必要になります。
ADOの代替技術との比較
ADOの代替技術としてはADO.NETやLINQ to SQLなどが挙げられます。これらの技術はADOと比べてより高度な機能を提供しており、パフォーマンスや利便性の面でも優れています。
ただし、ADOと比べると学習コストが高くなる傾向があります。プロジェクトの要件や開発チームのスキルセットを考慮した上で、適切な技術を選択する必要があります。
ADOを使用した実際のコード例
ADOを使用した実際のコード例に関して、以下3つを簡単に解説していきます。
- ADOを使用したデータの取得コード例
- ADOを使用したデータの更新コード例
- ADOを使用したストアドプロシージャの実行コード例
ADOを使用したデータの取得コード例
以下はADOを使用してデータベースからデータを取得する際の基本的なコード例です。Connectionオブジェクトを使用してデータベースに接続し、Commandオブジェクトを使用してSQLクエリを実行します。
取得したデータはRecordsetオブジェクトに格納されます。RecordsetオブジェクトのMoveFirstメソッドやMoveNextメソッドを使用して、レコードを順次参照することができます。
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.Open "Provider=SQLOLEDB;Data Source=MySQLServer;Initial Catalog=MyDatabase;User ID=MyUserID;Password=MyPassword;"
Dim cmd As ADODB.Command
Set cmd = New ADODB.Command
cmd.ActiveConnection = conn
cmd.CommandText = "SELECT * FROM MyTable"
Dim rs As ADODB.Recordset
Set rs = cmd.Execute
While Not rs.EOF
Debug.Print rs.Fields("MyField").Value
rs.MoveNext
Wend
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
ADOを使用したデータの更新コード例
以下はADOを使用してデータベースのデータを更新する際の基本的なコード例です。Recordsetオブジェクトを使用して更新対象のレコードを特定し、フィールドの値を変更した上でUpdateメソッドを呼び出すことで更新が反映されます。
また、AddNewメソッドを使用することで、新しいレコードを追加することもできます。追加する場合はAddNewメソッドを呼び出した後、フィールドの値を設定し、Updateメソッドを呼び出します。
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.Open "Provider=SQLOLEDB;Data Source=MySQLServer;Initial Catalog=MyDatabase;User ID=MyUserID;Password=MyPassword;"
Dim cmd As ADODB.Command
Set cmd = New ADODB.Command
cmd.ActiveConnection = conn
cmd.CommandText = "SELECT * FROM MyTable WHERE MyField = 'Old Value'"
Dim rs As ADODB.Recordset
Set rs = cmd.Execute
If Not rs.EOF Then
rs.Fields("MyField").Value = "New Value"
rs.Update
End If
rs.AddNew
rs.Fields("MyField").Value = "Added Value"
rs.Update
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
ADOを使用したストアドプロシージャの実行コード例
以下はADOを使用してストアドプロシージャを実行する際の基本的なコード例です。Commandオブジェクトを使用して、ストアドプロシージャを指定し、必要に応じてパラメータを設定します。
ストアドプロシージャを実行する場合はCommandTypeプロパティにadCmdStoredProcを指定します。ストアドプロシージャが結果セットを返す場合はExecuteメソッドを呼び出した後、Recordsetオブジェクトを使用して結果を取得できます。
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.Open "Provider=SQLOLEDB;Data Source=MySQLServer;Initial Catalog=MyDatabase;User ID=MyUserID;Password=MyPassword;"
Dim cmd As ADODB.Command
Set cmd = New ADODB.Command
cmd.ActiveConnection = conn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "MyStoredProcedure"
Dim param As ADODB.Parameter
Set param = cmd.CreateParameter("MyParameter", adVarChar, adParamInput, 50)
param.Value = "Parameter Value"
cmd.Parameters.Append param
Dim rs As ADODB.Recordset
Set rs = cmd.Execute
While Not rs.EOF
Debug.Print rs.Fields("MyField").Value
rs.MoveNext
Wend
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
- 最新Surface ProとLaptopが登場、AIで進化するWindowsの新時代が幕開け
- WinUI Gallery v2.4.10リリース、WinAppSDK 1.5と.NET8へアップデート
- Word for iPadにページ罫線機能追加、MS365 Insiderから利用可能に
- Google I/O 2024でアダプティブアプリ開発を推進、Compose APIやスタイラス対応で適応性向上
- Android 14のTV対応とCompose for TVベータ版リリース、Android TVプラットフォームの進化が加速
- Wear OSのWatch Face Formatが強化、新機能でウォッチフェイス開発が進化
- Wear OS 5でスマートウォッチの新時代到来、バッテリーとUIを強化し多様なブランド参入へ
- Jetpack ComposeがGoogle I/Oで大幅進化、マルチスクリーン時代を見据えた機能拡充
- Windows 11 Insider Preview Build 26217リリース、設定UIの改善とバグ修正が進行中
- GoogleがVeo、Imagen3、Music AI Sandboxを発表、高品質な動画・画像生成と音楽制作ツールで創造性を開拓
スポンサーリンク