Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

InitPhoneAdapter : パート 1

InitPhoneAdapter メソッドは、phoneAdapter という名前で CacheDataAdapter オブジェクトを作成します。このアダプタは、データ・セットを Provider.PhoneNumber テーブルに接続します。以下に示すこのメソッドの最初の部分は、次のように動作します。

  1. phoneAdapter によってサポートされる SQL コマンドを定義する SQL 文字列を作成します。ただし、挿入は、Provider.PhoneNumber で定義されているストアド・プロシージャによって処理されます。storedproc 変数には、そのストアド・プロシージャへの呼び出しを定義する文字列を指定します。

  2. CacheDataAdapter インスタンスを作成します。このアダプタは、SQL の SELECTCacheConnection インスタンスが含まれた文字列で初期化されます。

  3. アダプタの Insert コマンドを作成します。

  4. AddInputParams ヘルパー・メソッドを使用して、入力パラメータをアダプタの Insert コマンドに追加します。

  5. output パラメータを作成し、それを Insert コマンドに追加します。このパラメータは、Provider.PhoneNumberID を表します。ストアド・プロシージャでは、列の値は出力パラメータとして処理されます。

このメソッドの本文を、PhoneForm.csInitPhoneAdapter スタブに追加します。


private void InitPhoneAdapter()
{
  string selectSQL = "Select Contact, %ID, Number, PhoneNumberType " +
                      "from Provider.PhoneNumber";
  string updateSQL = "Update Provider.PhoneNumber Set Number = ?, " +
                       "PhoneNumberType = ? Where ID = ?";
  string storedProc = "{call Provider.PhoneNumber_InsertData(?,?,?)}";
  string deleteSQL = "Delete from Provider.PhoneNumber Where ID = ?";
            
  phoneAdapter = new CacheDataAdapter(selectSQL, cnCache);

  //Create InsertCommand using stored procedure
  phoneAdapter.InsertCommand = cnCache.CreateCommand();
  phoneAdapter.InsertCommand.CommandText = storedProc;

  //Add input parameters for InsertCommand
  AddInputParams(phoneAdapter.InsertCommand, "Number", "PhoneNumberType", 
                 "Contact");

  //Add output parameter - the row id - for the InsertCommand
  CacheParameter Id = phoneAdapter.InsertCommand.CreateParameter(); 
  Id.ParameterName = "ID";
  Id.CacheDbType = CacheDbType.NVarChar;
  Id.Direction = ParameterDirection.Output;
  Id.SourceColumn = "ID";
  phoneAdapter.InsertCommand.Parameters.Add(Id); 
  ...

FeedbackOpens in a new tab