execute sql

現在使用中のデータベースに対してSQLコマンドを実行します。
名前説明タイプ修飾子
command

SQLクエリまたはクエリです。

Stringなし

result,

result2,

result3,…,

resultN

(任意)クエリまたはクエリの結果を保持するデータセットに割り当てる名前です。(詳細については を参照してください)

(注意: 指定できる結果引数の数に制限はありません)

Stringなし
クエリの結果です
次の設定はこのアクションに適用可能です:  remove double quotes from cells, standard ASCII only.
例・ケース1: 単一の結果を取得するため、SQLコマンドを実行します
次の例では、CustDB データベースの CTable テーブルから CID が102の場合の CName フィールドを取得し、返された値を期待値である「Roberto Dylando」と比較します。
        
          	variable	driver	host	port	database name	username	password	others
create connection string	db_conn_str	SQL Server	pc271		cusDB			Trusted Connection=Yes
&nbsp								
	connection string	name						
connect database	#db_conn_str	Customers						
&nbsp								
	name							
use database	Customers							
&nbsp								
	command	result						
execute sql	select CName from CTable where CID='102'	CustomerName_ds						
&nbsp								
	name	filter						
use data set	CustomerName_ds							
&nbsp								
	value	expected						
check value	#CName	Roberto Dylando						
&nbsp								
repeat for data set								
&nbsp								
	name							
disconnect database	Customers							
        
    
例・ケース2: 複数の結果を取得するため、SQLコマンドを実行します
この例では、直接のSQLクエリではなく、ストアドプロシージャを実行するためにアクション execute sql が使用されています。その後、ストアドプロシージャは2つのSQLクエリを実行し、2つの結果テーブルを返します。それぞれの結果テーブルはデータセットにキャプチャされます。データセットの内容は、それぞれ2つのテキストファイルに書き出されます。
このストアドプロシージャは以下のようになります: 
        
            	variable	driver	host
create connection string	db_conn_str	SQL Server	pc271
&nbsp			
	port	database name	username
>>>		custDB	
&nbsp			
	password	others	
>>>		Trusted_Connection=Yes	
&nbsp			
	connection string	name	
connect database	#db_conn_str	Sales	
&nbsp			
	name		
use database	Sales		
&nbsp			
	command	result	result2
execute sql	exec dbo.SalesByYearAndCategory '7/1/1996', '7/31/1996', 'Beverages', '1998'	Shipments_ds	Sales_ds
&nbsp			
	file name	text	type
set text file	d:\July_Shipments.txt	ShippedDate  OrderID Subtotal Year	new
&nbsp			
	name	filter	
use data set	/Shipments_ds		
&nbsp			
	file name	text	type
set text file	d:\July_Shipments.txt	#"\n" & ShippedDate & " " & OrderID & " " & Subtotal & " " & Year	append
&nbsp			
repeat for data set			
&nbsp			
	file name	text	type
set text file	d:\1998_Beverages_sales.txt	TotalPurchased ProductName	new
&nbsp			
	name	filter	
use data set	/Sales_ds		
&nbsp			
	file name	text	type
set text file	d:\1998_Beverages_sales.txt	#"\n" & TotalPurchased & "  " & ProductName	append
&nbsp			
repeat for data set			
&nbsp			
	name		
disconnect database	Sales		
        
    

生成されたテキストファイルは次のように表示されます: 
July_shipments.txt

1998_Beverage_sales.txt

  • 引数 command にはセミコロンで区切られた複数の SQL クエリを含めることができます。
  • 異なるSQLコマンドは異なる種類の結果を生成することに注意してください(例えば、SQL の Select クエリはテーブルを返しますが、Insert、Update、Delete などの行ベースのコマンドはスカラー値を返し、Create や Use などのコマンドは null 値を返します)。ただし、対応する resultN 引数が指定されている限り、いずれの場合でも結果は TestArchitect データセットに保存されます。
  • このアクションの実行には、コマンド文字列に複数のクエリが存在するか、またはストアドプロシージャが呼び出されるため、複数のテーブルが返される場合があります。
  • 複数のクエリの場合、各結果テーブルは実行の順序に従って番号が付けられ、result、result2、result3 などで指定された対応する引数 result に返されます。例えば、コマンド文字列内の最初のクエリは、2つのテーブルを返すセレクトクエリである場合、その結果は result と result2 のデータセットに返され、次のクエリである挿入クエリは result3 のデータセットに結果を返します。
  • 上記の result、result2、result3 などの引数に加えて、データセットを指定するために引数名 result0 と result1 を使用することも選択できます。ただし、これらのヘッダーで指定されたデータセットは、resultと同じようにクエリ文字列の最初に返されたテーブルを受け取ります。したがって、アクションラインがresult、result0、result1 の全ての引数ヘッダーを使用し、それぞれ異なるデータセット名を指定する場合、アクションの実行は内容が同じである3つのデータセットを生成します。
  • 返されたデータセット内では、列ヘッダーの名前は対応する結果テーブルの列名から派生します(データセットとデータセット値の操作に関する詳細情報については、 Data sets を参照してください)。
  • 一般的には、データセットの作成には各データ列の列ヘッダーが指定されている必要があります。ただし、SQLクエリが列名を持たない結果テーブルを返す場合、TestArchitect は受信データセットに対して列ヘッダー column 1、column 2 などを自動的に割り当てます。
  • ストアドプロシージャの出力パラメータの値にアクセスするには、コマンド文字列で選択します。その値は、対応する引数 result で指定されたデータセットから取得できます。
  • このアクションは修飾子 <ignore> をサポートしています。文字列 <ignore> が引数の値として存在する場合、または引数に <ignore> と評価する式を含まれている場合、アクションは実行中にスキップされます。

Copyright © 2023 LogiGear Corporation. All rights reserved. LogiGear is a registered trademark, and Action Based Testing and TestArchitect are trademarks of LogiGear Corporation. All other trademarks contained herein are the property of their respective owners.

LogiGear Corporation

1730 S. Amphlett Blvd. Suite 200, San Mateo, CA 94402

Tel: +1(800) 322-0333