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

SQL Anywhere 11.0.1 (中文) » MobiLink - 服务器管理 » MobiLink 服务器 API » 使用 Java 语言编写同步脚本 » 用于 Java 的 MobiLink 服务器 API 参考 » DownloadTableData 接口

 

getUpsertPreparedStatement 方法

语法
public java.sql.PreparedStatement getUpsertPreparedStatement( ) throws SQLException
注释

返回允许用户向同步下载中添加 upsert(插入或更新)操作的 java.sql.PreparedStatement 实例。此预准备语句将应用于 DownloadTableData 实例,表中每列在语句中对应一个参数。

要在下载中包括插入或更新操作,请在 java.sql.PreparedStatement 中设置所有列值,然后调用 java.sql.PreparedStatement.executeUpdate 方法。如果插入或更新操作被过滤,则对预准备语句调用 java.sql.PreparedStatement.executeUpdate 将返回 0;而如果操作未被过滤,则将返回 1。操作如果是在同一同步中上载的,则会被过滤。

注意

您必须为插入和更新操作设置所有列值。

返回值

用于将插入和更新操作添加到下载中的 java.sql.PreparedStatement 实例。

异常
  • SQLException   如果在检索 upsert java.sql.PreparedStatement 实例时出现问题,则将其抛出。

另请参见
示例

在以下示例中,setDownloadInserts 方法使用 DownloadTableData.getUpsertPreparedStatement 来为要插入或更新的行获取预准备语句。java.sql.PreparedStatement.setInt 和 PreparedStatement.setString 方法会设置列值,PreparedStatement.executeUpdate 方法会设置下载的行值。

void setDownloadInserts(DownloadTableData td) { 
    java.sql.PreparedStatement insert_ps = td.getUpsertPreparedStatement();

    // This is the same as executing the following SQL statement:
    // INSERT INTO remoteOrders(pk, col1) VALUES (2300, "truck");
    insert_ps.setInt(1, 2300); 
    insert_ps.setString(2, "truck");

    int update_result = insert_ps.executeUpdate();
    if (update_result == 0) {
        // Insert was filtered because it was uploaded 
        // in the same synchronization.
    }
    else {
        // Insert was not filtered.
    }
    insert_ps.close();
}