SACommand オブジェクトを使用して、SQL Anywhere データベースに対して SQL 文を実行したりストアド・プロシージャを呼び出したりできます。次のいずれかのメソッドを使用して、データベースからデータを取り出すことができます。
ExecuteReader 結果セットを返す SQL クエリを発行します。このメソッドは、前方専用、読み込み専用のカーソルを使用します。結果セット内のローを 1 方向で簡単にループできます。
詳細については、ExecuteReader メソッドを参照してください。
ExecuteScalar 単一の値を返す SQL クエリを発行します。これは、結果セットの最初のローの最初のカラムの場合や、COUNT または AVG などの集約値を返す SQL 文の場合があります。このメソッドは、前方専用、読み込み専用のカーソルを使用します。
詳細については、ExecuteScalar メソッドを参照してください。
SACommand オブジェクトを使用する場合、SADataReader を使用して、ジョインに基づく結果セットを取り出すことができます。ただし、変更 (挿入、更新、または削除) を行うことができるのは、単一テーブルのデータのみです。ジョインに基づく結果セットは更新できません。
次の手順では、.NET データ・プロバイダに用意されている Simple コード・サンプルを使用します。
Simple コード・サンプルの詳細については、Simple サンプル・プロジェクトの知識を参照してください。
Connection オブジェクトを宣言して初期化します。
SAConnection conn = new SAConnection( "Data Source=SQL Anywhere 11 Demo" ); |
接続を開きます。
try { conn.Open(); |
SQL 文を定義して実行する Command オブジェクトを追加します。
SACommand cmd = new SACommand( "SELECT Surname FROM Employees", conn ); |
ストアド・プロシージャを呼び出す場合は、ストアド・プロシージャのパラメータを指定してください。
詳細については、ストアド・プロシージャの使用とSAParameter クラスを参照してください。
DataReader オブジェクトを返す ExecuteReader メソッドを呼び出します。
SADataReader reader = cmd.ExecuteReader(); |
結果を表示します。
listEmployees.BeginUpdate(); while( reader.Read() ) { listEmployees.Items.Add( reader.GetString( 0 ) ); } listEmployees.EndUpdate(); |
DataReader オブジェクトと Connection オブジェクトを閉じます。
reader.Close(); conn.Close(); |
SAConnection オブジェクトを宣言して初期化します。
SAConnection conn = new SAConnection( "Data Source=SQL Anywhere 11 Demo" ); |
接続を開きます。
conn.Open(); |
SQL 文を定義して実行する SACommand オブジェクトを追加します。
SACommand cmd = new SACommand( "SELECT COUNT(*) FROM Employees WHERE Sex = 'M'", conn ); |
ストアド・プロシージャを呼び出す場合は、ストアド・プロシージャのパラメータを指定してください。
詳細については、ストアド・プロシージャの使用を参照してください。
ExecuteScalar メソッドを呼び出して、値が含まれるオブジェクトを返します。
int count = (int) cmd.ExecuteScalar(); |
SAConnection オブジェクトを閉じます。
conn.Close(); |
SADataReader を使用する場合、指定したデータ型で結果を返すための Get メソッドが複数あります。
詳細については、SADataReader クラスを参照してください。
次の Visual Basic コードは、SQL Anywhere サンプル・データベースへの接続を開き、DataReader を使用して結果セット内の最初の 5 人の従業員の姓を返します。
Dim myConn As New SAConnection() Dim myCmd As _ New SACommand _ ("SELECT Surname FROM Employees", myConn) Dim myReader As SADataReader Dim counter As Integer myConn.ConnectionString = _ "Data Source=SQL Anywhere 11 Demo" myConn.Open() myReader = myCmd.ExecuteReader() counter = 0 Do While (myReader.Read()) MsgBox(myReader.GetString(0)) counter = counter + 1 If counter >= 5 Then Exit Do Loop myConn.Close() |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |