15.11.7 SQL文のエラー判定とエラー情報の取得
SQL文のエラー判定をして,エラーがある場合はエラー情報を取得する例を次に示します。
プログラム例はVisual C# .NETで記述していますが,Visual Basic.NETでもほぼ同じ内容です。必要に応じて,読み替えてください。
using System; using System.IO; using System.Data; using System.Windows.Forms; using Hitachi.HiRDB; namespace SAMPLE { public class SAMPLE { static void Main() { HiRDBConnection connection1 = new HiRDBConnection ("datasource=C:\\Windows\\HiRDB.ini;UID=USER1;PWD=USER1;"); HiRDBCommand cm = new HiRDBCommand(); try { // 接続実行 ........................................1 connection1.Open(); cm.Connection = connection1; // ********************************************* // SAMPLE1(C1 INT,C2 INT,C3 VARCHAR(30))の検索例 ...2 // ********************************************* // パラメタオブジェクトを作成する HiRDBParameter par = cm.CreateParameter(); // パラメタ属性設定 // 入力パラメタ par.Direction = ParameterDirection.Input; // INTEGER型 par.HiRDBType = HiRDBType.Integer; int aValue; aValue = 200; // パラメタ値設定 par.Value = aValue; // SQL設定 cm.CommandText = "SELECT C2,C3 FROM SAMPLE1 WHERE C1=? WITH EXCLUSIVE LOCK NO WAIT"; // パラメタオブジェクトの割り当て cm.Parameters.Add(par); // DataReaderオブジェクト取得 HiRDBDataReader dr = cm.ExecuteReader(); int cnt=1; Console.WriteLine("**** 検索実行 ****"); while(dr.Read()) { Console.WriteLine("**** "+cnt+"行目検索 ***"); // C2のデータ表示 Console.WriteLine("C2="+dr.GetInt32(0)); // C3のデータ表示 Console.WriteLine("C3="+dr.GetString(1)); cnt ++; } // DataReaderの解放 dr.Close(); // 切断 ............................................3 connection1.Close(); connection1.Dispose(); } catch (HiRDBException ex) ..............................4 { // エラー情報出力 Console.WriteLine(ex); // 個別情報は以下の処理で取得 // SQLCODEの出力 Console.WriteLine("SQLCODE="+ex.ErrorCode); // SQLERRM(SQLメッセージ)の出力 Console.WriteLine("SQLERRM=" + ex.Message); } } } }
- [説明]
-
-
Openメソッドを使用してHiRDBへ接続します。
-
指定した条件と一致する行を表示させるSQL文を実行します。
-
Closeメソッドを使用してHiRDBから切断します。
-
エラーになった場合はSQLExceptionを返し,エラー情報を出力します。
-