EssGBeginUpdate

サーバーのデータの更新を開始します。この関数は呼出し元にデータを戻しません。

構文

            ESSG_FUNC_M 
            EssGBeginUpdate
             (
            hGrid, ulOptions
            );
         
パラメータデータ型説明

hGrid

ESSG_HGRID_T

EssGNewGridから戻されるハンドル。

ulOptions

ESSG_ULONG_T

ブロックを更新前にロックする必要があるかどうかを指定する定数。次の相互に排他的な値のいずれかの値を使用する必要があります:

  • ESSG_REQUIRELOCK ブロックが先にロックされていない場合、更新できません。

  • ESSG_LOCKIFNEEDED ブロックが先にロックされていない場合、ロックしてから更新します。

備考

EssGPerformOperationを呼び出して操作を完了すると、このブロックのロックが解除されます。ブロックのロックを維持する場合は、EssGSetGridOptionsの「更新モード」オプションをTRUEに設定します。この操作では行を取得する必要はありません。EssGSendRowsEssGPerformOperationを呼び出すのみで十分です。

戻り値

正常終了の場合は、ESSG_STS_NOERRが戻されます。

アクセス

なし。

         ESSG_VOID_T ESSG_BeginUpdate (ESSG_HGRID_T hGrid)

{
  ESSG_FUNC_M     sts = ESS_STS_NOERR;
  ESSG_PPDATA_T         ppDataIn;
  ESSG_RANGE_T          rDataRangeIn;
  ESSG_ULONG_T          ulOptions;

  /* connect the grid to a database on the server */
  sts = EssGConnect(hGrid, "Rainbow", "Admin", 
        "Password", "Demo", "Basic", ESSG_CONNECT_NODIALOG);
   
  if(sts == 0)
  {
     ppDataIn = BuildTable (&rDataRangeIn); 
      
     ulOptions = ESSG_LOCKIFNEEDED;
     /* start the update operation */
     sts = EssGBeginUpdate(hGrid, ulOptions);
  }

  if(sts == 0)
  {
     /* send the entire grid to define the query */
     sts = EssGSendRows(hGrid, &rDataRangeIn, ppDataIn);
  }

  if(sts == 0)
  {
     /* perform the update */
     sts = EssGPerformOperation(hGrid, 0);

     /* free the built data */
     FreeTwoDim(ppDataIn, rDataRangeIn.ulNumRows);
  }
   
  if(!sts)
  {
  EssGEndOperation(hGrid, 0);
  EssGDisconnect(hGrid, 0);
  }
}
      

関連トピック