working with vbscript adodb connection objects
VBScript接続オブジェクトの概要:チュートリアル#12
私の前に VBSチュートリアル 、「 Excelオブジェクト ’はVBScriptにあります。このチュートリアルでは、について説明します 接続オブジェクト VBScriptで使用されます。
VBScriptはさまざまなタイプのオブジェクトをサポートしており、その中には接続オブジェクトがあります。接続オブジェクトは、主に、データベース接続を処理および処理するためにコーダーにサポートを提供するオブジェクトと呼ばれます。
このチュートリアルでは、VBScriptの接続オブジェクトのさまざまなプロパティとメソッドを含むすべての側面と、理解しやすい簡単な例について説明します。
学習内容:
- 概要概要
- 接続オブジェクトのプロパティとメソッド
- ADODB接続オブジェクトを使用したデータベース接続の確立
- ADODB接続オブジェクトを使用したExcelファイルへのデータのエクスポート
- ADODB接続オブジェクトを使用したテキストファイルへのデータのエクスポート
- 結論
- 推奨読書
概要概要
SQL Server、PL / SQLなどのデータベースはすべて インストール済み コンピュータ上でデータベース接続を操作します。
5年の経験のための手動テスト面接の質問
そのため、QTPのデータベースに接続するための簡単なメカニズムはありません。しかしの助けを借りて ADODBオブジェクト 、データベースと対話し、SQLクエリを操作して、データベースからデータをフェッチできます。
ADO を意味する ActiveXデータオブジェクト これにより、QTPとデータベース間の仲介役として機能するメカニズムが提供されます。
このトピックは、データベースでの作業の基礎を形成しました。データベースをよりよく理解していれば、長期的には非常に役立ちます。
データベースを簡単に操作するために作成する必要のあるさまざまなコード、プロパティ、およびメソッドをすべて理解して、自分でコードを簡単に作成できるようにします。
それでは、データベースとの接続を確立するのに役立つプロパティとメソッドから始めましょう。
接続オブジェクトのプロパティとメソッド
データベースからデータを抽出することをサポートするさまざまなプロパティとメソッドがあります。
ADODB接続オブジェクトのプロパティのリストは次のとおりです。
#1)接続文字列 :
これは、データベース接続の作成に使用される非常に便利なプロパティであり、の詳細などの接続の詳細が含まれています。 ドライバー、データベースサーバー名、ユーザー名、およびパスワード 。
#2)接続タイムアウト :
これは、に必要な時間を定義するために使用されます 待っている 接続を確立するため。
#3)プロバイダー :
このプロパティは、プロバイダーに関連するすべての詳細、つまり 接続プロバイダー 。
#4)状態 :
これにより、接続の状態に関する情報が提供されます。つまり、接続が オンまたはオフ 。
上記のものは、接続オブジェクトのプロパティです。ただし、 RecordSetオブジェクト また(しばらく話し合います)。
そのプロパティのリストは次のとおりです。
#1)BOF:
このプロパティは、現在のレコードの位置を知るために使用されます。現在のレコードの位置が存在する場合 最初のレコードの前 レコードセットの場合、このプロパティはtrueを返します。
#2)EOF:
これは上記の逆です。現在のレコードの位置が存在する場合 最後のレコードの後 レコードセットの場合、このプロパティはtrueを返します。
注意: レコードセットにレコードがない場合、EOFとBOFの値はfalseになります。これは、空のレコードを検証する場合、つまりレコードセットにレコードがない場合に役立ちます。
#3)MaxCount:
これは、設定に役立ちます 最大 データベースから返すことができる行/レコードの値。つまり、データから一度に最大20行をフェッチする場合は、このプロパティを20に設定できます。
それでは、メソッドを見てみましょう。
ADODB接続オブジェクトとRecordSetオブジェクトのメソッドのリストは次のとおりです。
- 開いた: このメソッドは、データベース接続オブジェクト/レコードセットオブジェクトを開くために使用されます。
- 実行: これは、提供されているSQLクエリを実行するために使用されます。
- 閉じる: これは、開かれているデータベース接続/レコードセットを閉じるために使用されます。
- キャンセル: これは、データベース接続の既存の実行をキャンセルするために使用されるレコードセットメソッドです。
- クローン: これはレコードセットメソッドであり、既存のレコードセットオブジェクトのクローンを取得するために使用されます。
- 移動: これは、記載されているカウントに基づいて、レコードセット内の指定された場所にポインターを移動するために使用されるレコードセットメソッドです。
- カウント: これはレコードセットメソッドであり、レコードセットに存在するフィールドの総数、つまりテーブル内の列の総数を取得するために使用されます。
- アイテム(i): これはレコードセット方式です。これは、レコードセットに存在するフィールドの総数によってインデックスが指定されているアイテムを取得するために使用されます。
これらは、Connection関連のオブジェクトを処理するときに使用するさまざまなプロパティとメソッドです。
これらのオブジェクトの動作を理解するために、実際の実装に移りましょう。
ADODB接続オブジェクトを使用したデータベース接続の確立
このセクションでは、VBScriptの接続オブジェクトメカニズムを使用してデータベース接続を作成するためのさまざまな手順について説明します。
以下は、接続を作成するためのコードです。
Set obj = createobject(“ ADODB.Connection”) ‘ ADODB接続オブジェクトの作成
Set obj1 = createobject(“ ADODB.RecordSet”) ‘ ADODBレコードセットオブジェクトの作成
薄暗いdbquery ‘データベースクエリ変数bqueryの宣言
Dbquery =” dbo.acctからacctnoを選択します。ここで、name = ‘Harsh’” ‘クエリの作成
obj.Open“ Provider = SQLQLEDB; Server =。 SQLEXPRESS; UserId = test; Password = P @ 123; Database = AUTODB” 「接続を開く
obj1.Open dbquery、obj 「レコードセットを使用してクエリを実行する
val1 = obj1.fields.item(0) ‘フィールド値を返します
msgbox val1 ‘フィールドアイテム0、つまり列1の値を表示しています
obj.close 「接続オブジェクトを閉じる
obj1.close 「接続オブジェクトを閉じる
obj1 = Nothing ‘を設定します Recordsetオブジェクトのリリース
Set obj = Nothing ‘ 接続オブジェクトの解放
それがどのように機能するか見てみましょう:
- まず、 接続 オブジェクト 「obj」という名前は「createobject」キーワードを使用して作成され、データベース接続オブジェクトを作成するときにパラメータにADODB接続が定義されます。
- 次に、 レコードセットオブジェクト 「obj1」を使用してデータベースから特定のテーブルのレコードにアクセスするために作成されます。 Recordset Objectは、データベースからレコードにアクセスする方法を提供します。
- その後、変数が宣言されます クエリ データベースからレコードをフェッチするためのクエリを格納する「dbquery」。
- 次に、上で作成された接続オブジェクトは オープン SQL SERVER、サーバー名、データベース名、ユーザーID、パスワードなど、プロバイダーに関するすべての詳細を提供して、オブジェクトの操作を開始します。
- クエリは 実行された クエリと接続オブジェクトに言及してレコードセットオブジェクトを開いた後。
- 次に、メインタスクを実行してアカウント番号の値をフェッチします。を使用したクエリによる特定の人の 田畑 アイテムのインデックスに言及しているレコードセットのアカウント番号。この場合、item(0)のように配置されます。次に、フィールドの値がメッセージボックスを使用して表示されます。
注意: フィールドは「列」を表し、レコードセットはデータベーステーブルの「行」を表します。
- その後、オブジェクトは 閉まっている タスクが完了したので。
- 最後に、両方のオブジェクト–objとobj1はそれぞれ リリース 「Nothing」キーワードを使用します。
注意 :を使用してオブジェクトを解放することをお勧めします 「オブジェクト名を設定=なし」 最後にタスクが完了した後。
データベースとの接続の確立、およびデータベースとQTPの組み合わせを使用したデータの読み取りと表示についてすべて見てきました。
接続オブジェクトを使用する他のいくつかのシナリオを見てみましょう。
ADODB接続オブジェクトを使用したExcelファイルへのデータのエクスポート
このセクションでは、VBScriptの接続オブジェクトメカニズムを使用して、データベースからExcelファイルにデータをエクスポートするためのさまざまな手順を説明します。
このシナリオのコードは次のとおりです。
Set obj = CreateObject('ADODB.Connection') Set obj1 = CreateObject('ADODB.RecordSet ') Set obj2 = CreateObject('Excel.Application') Set obj3 = obj2.Workbooks.Open ('C:UsersRiya.xlsx') Set obj4 = obj3.Worksheets(1) obj.Provider =('Microsoft.ACE.OLEDB.12.0') obj.Open 'C:Users
ewdb.autodb' obj1.Open 'Select name, age from person', obj obj4.cells(1, 1) = 'Name' obj4.cells(1, 2) = 'Age' row = 2 While obj1.EOF = False obj4.cells(row, 1) = obj1.Fields('Name') obj4.cells(row, 2) = obj1.Fields('Age') obj1.MoveNext row = row+1 Wend obj3.Save obj2.Quit obj1.Close obj.Close Set obj4 = Nothing Set obj3 = Nothing Set obj2 = Nothing Set obj1 = Nothing Set obj = Nothing
それがどのように機能するか見てみましょう:
- まず、オブジェクト– 接続 オブジェクト、RecordSetオブジェクト、Excelオブジェクト 「obj」という名前の「obj1」と「obj2」は、それぞれ「createobject」キーワードを使用して作成されます。
- 次に、ワークブックオブジェクト– 「obj3」はExcelファイルの場所を示して作成され、その後 ワークシート オブジェクト(「obj4」)は、データをエクスポートする必要があるExcelファイルのシートを指定するために作成されます。
- 次に、上で作成された接続オブジェクトは オープン オブジェクトの操作を開始するには、プロバイダーの詳細が記載されています。
- クエリは 実行された クエリと接続オブジェクトに言及してレコードセットオブジェクトを開いた後。
- 次に、メインタスクを実行して、特定の人物の名前と年齢の値を、を使用したクエリに従ってExcelファイルに保存します。 田畑 データベースからのシートのセル内のレコードセットの。ループは、EOFがfalseでなくなるまで続きます(EOFについてはすでに説明しました)。
- Excelワークブックは 保存しました 。
- Excelアプリケーションは 終了する タスクが完了したので。
- その後、オブジェクトは 閉まっている タスクが完了したので。
- 最後に、すべてのオブジェクトは リリース 「Nothing」キーワードを使用します。
ADODB接続オブジェクトを使用したテキストファイルへのデータのエクスポート
このセクションでは、VBScriptの接続オブジェクトメカニズムを使用してデータベースからテキストファイルにデータをエクスポートする際のさまざまな手順について説明します。
このシナリオのコードは次のとおりです。
Set obj = CreateObject('ADODB.Connection') Set obj1 = CreateObject('ADODB.RecordSet ') Set obj2 = CreateObject('Scripting.FileSystemObject') Set obj3 = obj2.OpenTextFile('C:UsersRiya.xlsx') obj.Provider =('Microsoft.ACE.OLEDB.12.0') obj.Open 'C:Users
ewdb.autodb' obj1.Open 'Select name, age from person', obj obj3.WriteLine 'Name Age' obj3.WriteLine '------' While obj1.EOF = False obj3.WriteLine obj1.Fields('Name') & “ “ & obj1.Fields('Age') obj1.MoveNext Wend obj3.Close Set obj3 = Nothing Set obj2 = Nothing obj1.Close obj.Close Set obj1 = Nothing Set obj = Nothing
それがどのように機能するか見てみましょう:
- まず、オブジェクト– 接続 オブジェクト、RecordSetオブジェクト、ファイルオブジェクト 「obj」という名前の「obj1」と「obj2」は、それぞれ「createobject」キーワードを使用して作成されます。
- 次に、ファイルオブジェクトが開かれ、 ロケーション データをエクスポートする必要があるテキストファイルの。
- 次に、上で作成された接続オブジェクトは オープン オブジェクトの操作を開始するには、プロバイダーの詳細が記載されています。
- クエリは 実行された クエリと接続オブジェクトに言及してレコードセットオブジェクトを開いた後。
- 次に、名前と年齢を使用して書かれます writeline ファイルシステムオブジェクトのメソッド。
- 次に、メインタスクを実行して、名前と年齢の値を特定の人のテキストファイルに書き込みます。 田畑 データベースからのシートのセル内のレコードセットの。ループは、EOFがfalseでなくなるまで続きます(EOFについてはすでに説明しました)。
- その場合、Fileオブジェクトは 閉まっている そして、ファイル関連のオブジェクトが解放されます。
- その後、オブジェクトは 閉まっている タスクが完了したので。
- 最後に、接続オブジェクトとレコードセットオブジェクトは次のとおりです。 リリース 「Nothing」キーワードを使用します。
これらは、概念を正しく理解する上で重要な主要なシナリオの一部です。これらは、スクリプト内の接続オブジェクトを処理しながら、さまざまなタイプのシナリオを処理するためのコードを処理および処理するための基盤を形成します。
それでは、簡単な例を通して、これらのシナリオの実装を理解しましょう。
例:
Let’s see implementation of Exporting data in files Function Exporttoexcelfile() ‘Function for exporting data to excel file Set obj = CreateObject('ADODB.Connection') Set obj1 = CreateObject('ADODB.RecordSet ') Set obj2 = CreateObject('Excel.Application') Set obj3 = obj2.Workbooks.Open ('C:UsersRiya.xlsx') Set obj4 = obj3.Worksheets(1) obj.Provider =('Microsoft.ACE.OLEDB.12.0') obj.Open 'C:Users
ewdb.autodb' obj1.Open 'Select name, age from person', obj obj4.cells(1, 1) = 'Name' obj4.cells(1, 2) = 'Age' row = 2 If obj1.EOF = True Then Msgbox “No records found on the table!!” End If While obj1.EOF = False obj4.cells(row, 1) = obj1.Fields('Name') obj4.cells(row, 2) = obj1.Fields('Age') obj1.MoveNext row = row+1 Wend obj3.Save obj2.Quit obj1.Close obj.Close Set obj4 = Nothing Set obj3 = Nothing Set obj2 = Nothing Set obj1 = Nothing Set obj = Nothing End Function Function Exporttotextfile() ‘Function for exporting data to text file Set obj = CreateObject('ADODB.Connection') Set obj1 = CreateObject('ADODB.RecordSet ') Set obj2 = CreateObject('Scripting.FileSystemObject') Set obj3 = obj2.OpenTextFile('C:UsersRiya.xlsx') obj.Provider =('Microsoft.ACE.OLEDB.12.0') obj.Open 'C:Users
ewdb.autodb' obj1.Open 'Select name, age from person', obj obj3.WriteLine 'Name Age' obj3.WriteLine '------' If obj1.EOF = True Then Msgbox “No records found on the table!!” End If While obj1.EOF = False obj3.WriteLine obj1.Fields('Name') & “ “ & obj1.Fields('Age') obj1.MoveNext Wend obj3.Close Set obj3 = Nothing Set obj2 = Nothing obj1.Close obj.Close Set obj1 = Nothing Set obj = Nothing End Function Call Exporttoexcelfile() ‘Calling Function for exporting data to excel file Call Exporttotextfile() ‘Calling Function for exporting data to text file
注意: の出力用 例 、ファイルの場所に移動して、それぞれのファイルにデータがエクスポートされているかどうかを確認できます。
結論
これまでに、使用の重要性と有効性についての知識を習得したに違いありません。 VBSADODB接続オブジェクト 。
Javaでjarを開く方法
次のチュートリアル#13 :次のチュートリアルで「ファイルシステムオブジェクト」について説明します。
しばらくお待ちください。Connectionオブジェクトの操作経験を共有し、このチュートリアルについて質問がある場合はお知らせください。
推奨読書
- VBScriptExcelオブジェクトの操作
- VBScriptファイルオブジェクト:CopyFile、DeleteFile、OpenTextFile、テキストファイルの読み取りと書き込み
- QTPチュートリアル#7-QTPのオブジェクト識別パラダイム-QTPがオブジェクトを一意に識別する方法
- QTPのオブジェクトリポジトリ-チュートリアル#22
- VBScriptエラー処理:VBScriptエラー時、エラー時GoTo 0、エラー時再開次へ
- VBScript条件ステートメント:VBScript If、ElseIf、Select Case
- VBScriptチュートリアル:VBScriptを最初から学ぶ(15以上の詳細なチュートリアル)
- C ++のクラスとオブジェクト