同期をモニタするコールバック関数は、ul_sync_status 構造体をパラメータとして取ります。
ul_sync_status 構造体には次のようなメンバーが含まれます。
struct ul_sync_status { struct { ul_u_long bytes; ul_u_long inserts; ul_u_long updates; ul_u_long deletes; } sent; struct { ul_u_long bytes; ul_u_long inserts; ul_u_long updates; ul_u_long deletes; } received; p_ul_sync_info info; ul_sync_state state; ul_u_short db_table_count; ul_u_short table_id; char table_name[]; ul_wchar table_name_w2[]; ul_u_short sync_table_count; ul_u_short sync_table_index; ul_sync_state state; ul_bool stop; ul_u_short flags; ul_void * user_data; SQLCA * sqlca; ul_u_long current_download_row_count; ul_u_long total_download_row_count; } |
sent.inserts これまでにアップロードされた挿入済みローの数。
sent.updates これまでにアップロードされた更新済みローの数。
sent.deletes これまでにアップロードされた削除済みローの数。
sent.bytes これまでにアップロードされたバイト数。
received.inserts これまでにダウンロードされた挿入済みローの数。
received.updates これまでにダウンロードされた更新済みローの数。
received.deletes これまでにダウンロードされた削除済みローの数。
received.bytes これまでにダウンロードされたバイト数。
info ul_sync_info 構造体にポインタを返します。
db_table_count データベース内のテーブルの数を返します。
table_id 現在アップロードまたはダウンロードされているテーブルの番号 (1 から始まります)を返します。同期されないテーブルがある場合には、この番号で値がスキップされることがあります。また、番号が必ず増加するとはかぎりません。
table_name[] 現在のテーブルの名前を返します。
table_name_w2[] 現在のテーブルの名前 (ワイド文字バージョン)を返します。このフィールドには、Windows (デスクトップまたは Mobile) 環境の場合のみ値が入ります。
sync_table_count 同期中のテーブルの数を返します。
sync_table_index アップロードまたはダウンロードされているテーブルの番号を返します。この番号は 1 から始まり sync_table_count の値で終わります。同期されていないテーブルがある場合には、この番号で値がスキップされることがあります。
state 以下のステータスのいずれかを表します。
UL_SYNC_STATE_STARTING 同期処理はまだ行われていません。
UL_SYNC_STATE_CONNECTING 同期ストリームは構築されていますが、まだ開かれていません。
UL_SYNC_STATE_SENDING_HEADER 同期ストリームが開かれ、ヘッダが送信されようとしています。
UL_SYNC_STATE_SENDING_TABLE テーブルが送信されています。
UL_SYNC_STATE_SENDING_DATA スキーマ情報またはデータが送信されています。
UL_SYNC_STATE_FINISHING_UPLOAD アップロード処理が完了し、コミットが実行されています。
UL_SYNC_STATE_RECEIVING_UPLOAD_ACK アップロード完了の確認を受信しています。
UL_SYNC_STATE_RECEIVING_TABLE テーブルを受信しています。
UL_SYNC_STATE_RECEIVING_DATA スキーマ情報またはデータを受信しています。
UL_SYNC_STATE_COMMITTING_DOWNLOAD ダウンロード処理が完了し、コミットが実行されています。
UL_SYNC_STATE_SENDING_DOWNLOAD_ACK ダウンロード完了の確認が送信されています。
UL_SYNC_STATE_DISCONNECTING 同期ストリームが閉じられようとしています。
UL_SYNC_STATE_DONE 同期は正常に完了しました。
UL_SYNC_STATE_ERROR 同期は完了しましたが、エラーが発生しました。
UL_SYNC_STATE_ROLLING_BACK_DOWNLOAD ダウンロード中にエラーが発生し、ダウンロードがロールバックされています。
stop 同期を中断するには、このメンバーを true に設定します。SQL 例外の SQLE_INTERRUPTED が設定され、通信エラーが発生したかのように同期が停止します。observer は、適切なクリーンアップを実行するように、常に DONE または ERROR のステータスで呼び出されます。
flags 現在の状態に関連する追加情報を示す、現在の同期フラグを返します。
user_data 引数として ULSetSynchronizationCallback 関数に渡されるユーザデータオブジェクトを返します。
sqlca 接続のアクティブな SQLCA へのポインタを返します。
current_download_row_count これまでにダウンロードされたローの数を返します。この数には、received.inserts、received.updates、または received.deletes に含まれていない、重複するローが含まれます。
total_download_row_count ダウンロードで受信するローの合計数を返します。この数には、received.inserts、received.updates、または received.deletes に含まれていない、重複するローが含まれます。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |