.NET データ・プロバイダとともにストアド・プロシージャを使用できます。ExecuteReader メソッドを使用して、結果セットを返すストアド・プロシージャを呼び出します。また、ExecuteNonQuery メソッドを使用して、結果セットを返さないストアド・プロシージャを呼び出します。ExecuteScalar メソッドを使用して、単一値のみを返すストアド・プロシージャを呼び出します。
ストアド・プロシージャを呼び出すには、SAParameter オブジェクトを作成します。次のように、疑問符をパラメータのプレースホルダとして使用します。
sp_producttype( ?, ? ) |
Parameter オブジェクトの詳細については、SAParameter クラスを参照してください。
SAConnection オブジェクトを宣言して初期化します。
SAConnection conn = new SAConnection( "Data Source=SQL Anywhere 11 Demo" ); |
接続を開きます。
conn.Open(); |
SQL 文を定義して実行する SACommand オブジェクトを追加します。次のコードは、文をストアド・プロシージャとして識別する CommandType プロパティを使用します。
SACommand cmd = new SACommand( "ShowProductInfo", conn ); cmd.CommandType = CommandType.StoredProcedure; |
CommandType を指定しない場合、次のように、疑問符をパラメータのプレースホルダとして使用します。
SACommand cmd = new SACommand( "call ShowProductInfo(?)", conn ); cmd.CommandType = CommandType.Text; |
ストアド・プロシージャのパラメータを定義する SAParameter オブジェクトを追加します。ストアド・プロシージャに必要なパラメータごとに新しい SAParameter オブジェクトを作成してください。
SAParameter param = cmd.CreateParameter(); param.SADbType = SADbType.Int32; param.Direction = ParameterDirection.Input; param.Value = 301; cmd.Parameters.Add( param ); |
Parameter オブジェクトの詳細については、SAParameter クラスを参照してください。
DataReader オブジェクトを返す ExecuteReader メソッドを呼び出します。Get メソッドを使用して、指定したデータ型で結果を返します。
SADataReader reader = cmd.ExecuteReader(); reader.Read(); int ID = reader.GetInt32(0); string name = reader.GetString(1); string descrip = reader.GetString(2); decimal price = reader.GetDecimal(6); |
SADataReader オブジェクトと SAConnection オブジェクトを閉じます。
reader.Close(); conn.Close(); |
前述の手順 3 の説明は、ストアド・プロシージャを呼び出すための 2 つの方法を示します。Parameter オブジェクトを使用しないでストアド・プロシージャを呼び出すためのもう 1 つの方法は、次のように、ソース・コードからストアド・プロシージャを呼び出す方法です。
SACommand cmd = new SACommand( "call ShowProductInfo( 301 )", conn ); |
結果セットまたは単一値を返すストアド・プロシージャを呼び出す方法の詳細については、SACommand オブジェクトを使用したデータの取得を参照してください。
結果セットを返さないストアド・プロシージャを呼び出す方法の詳細については、SACommand オブジェクトを使用したローの挿入、更新、削除を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |