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 © 2024 LogiGear Corporation. All rights reserved. LogiGearはLogiGear Corporationの登録商標であり、Action Based TestingおよびTestArchitectはLogiGear Corporationの商標です。ここに記載されているその他の商標は、各所有者の財産です。

LogiGear Corporation

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

Tel: +1 (650) 572-1400