「シングル・ロー・クエリ」がデータベースから取り出すローの数は多くても 1 つだけです。シングル・ロー・クエリの SELECT 文では、INTO 句が select リストの後、FROM 句の前にきます。INTO 句には、select リストの各項目の値を受け取るホスト変数のリストを指定します。select リスト項目と同数のホスト変数を指定してください。ホスト変数と一緒に、結果が NULL であることを示すインジケータ変数も指定できます。
SELECT 文が実行されると、データベース・サーバは結果を取り出して、ホスト変数に格納します。クエリの結果、複数のローが取り出されると、データベース・サーバはエラーを返します。
クエリの結果、選択されたローが存在しない場合は、「ローが見つかりません
」という警告が返されます。エラーと警告は、SQLCA 構造体で返されます。SQLCA (SQL Communication Area)を参照してください。
次のコードは Employees テーブルから正しくローをフェッチできた場合は 1 を、ローが存在しない場合は 0 を、エラーが発生した場合は -1 を返します。
EXEC SQL BEGIN DECLARE SECTION; long ID; char name[41]; char Sex; char birthdate[15]; short int ind_birthdate; EXEC SQL END DECLARE SECTION; ... int find_employee( long Employees ) { ID = Employees; EXEC SQL SELECT GivenName || ' ' || Surname, Sex, BirthDate INTO :name, :Sex, :birthdate:ind_birthdate FROM Employees WHERE EmployeeID = :ID; if( SQLCODE == SQLE_NOTFOUND ) { return( 0 ); /* Employees not found */ } else if( SQLCODE < 0 ) { return( -1 ); /* error */ } else { return( 1 ); /* found */ } } |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |