データの更新

データの更新は、ビュー内のデータを変更し、データをサーバーに返送して行います。更新中はユーザーはビューに関連するブロックをロックする必要があります。これによって、プログラムがデータを取得してから、データベースに再度書き込まれるまでの間に、他のユーザーがデータを変更できなくなります。

更新に関するアクションの順序は、次のようになります:

  1. レポート・スクリプトを実行して関連のブロックをロックし、更新対象のデータを取得します

  2. ビュー内の一部またはすべてのデータを変更します

  3. データをサーバーに送り返して、ブロックのロックを解除します

一般的なデータ更新操作のフローチャート。BeginUpdate、1つ以上のSendString、EndUpdateの順。次に、1つ以上のUpdatesまたはUpdatefilesの順。

更新関数の制御フロー

EsxReport()またはEsxBeginReport()を使用してブロックをロックします。これらの関数に渡されるLock引数がTRUEになっていることを確認します。これによって取得するデータに関連するすべてのブロックがロックされます。これらの関数ではブロックをロックしてデータを取得することも、ブロックのロックのみ行うこともできます(新しいデータまたは最新のデータの場合)。データは取得せずにブロックのロックのみ行う場合は、渡されるOutput引数をTRUEまたはFALSEに適宜変更します。

次に、ユーザーがビュー内のデータ・セルを編集できるようにします(使用している製品が提供する機構を使用します)。

最後にEsxUpdate()を呼び出して、これに(更新済の値を含む)ビューのコンテンツすべてを渡します。またはEsxBeginUpdate()を呼び出し、次にEsxSendString()を呼び出すことによって、一度に1つの文字列ずつ、ビュー全体をサーバーに送信します。

サーバーに送信される各文字列には、更新を指定した各行の末尾に改行を入れる必要があります。

ファイルから更新を実行する場合は、前述のように、最初にブロックをロックしてからEsxUpdateFile()を呼び出します。

詳細な説明は、EssUpdateEssSendStringEssBeginUpdateEsbUpdateEsbSendString、およびEsbBeginUpdateを参照してください。

APIライブラリを参照してください。