Hitachi

ノンストップデータベース HiRDB Version 10 UAP開発ガイド


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);
                }
        }
    }
}
[説明]
  1. Openメソッドを使用してHiRDBへ接続します。

  2. 指定した条件と一致する行を表示させるSQL文を実行します。

  3. Closeメソッドを使用してHiRDBから切断します。

  4. エラーになった場合はSQLExceptionを返し,エラー情報を出力します。