Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » UltraLite - C 和 C++ 编程 » 应用程序开发 » 使用嵌入式 SQL 开发 UltraLite C++ 应用程序 » 嵌入式 SQL 应用程序的同步设置 » 同步监控和取消

 

同步状态信息

监控同步的回调函数将 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(桌面操作系统和移动操作系统)环境中填充。

  • 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,且同步已经停止,就像发生了通信错误一样。观察器被调用时始终 处于 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 中的重复行数。

 示例
 CustDB 示例
 另请参见