为 MobiLink 服务器提供一个在上载处理过程中使用的事件,该事件用于处理插入到远程数据库中的行。
SQL 脚本的参数名称 |
顺序 |
---|---|
r.pk-column-1 | 1 |
... | ... |
r.pk-column-N | N |
r.column-1 |
N +1 |
... | ... |
r.column-M |
N + M |
无。
基于语句的 upload_insert 脚本将用于直接插入列值。
您可以为远程数据库的每个表编写一个 upload_insert 脚本。
对于 Java 和 .NET 应用程序,此脚本必须返回有效的 SQL。
此示例处理在远程数据库的 Customer 表中进行的插入。该脚本将值插入到统一数据库的名为 Customer 的表中。该表的最后一列将 Customer 标识为活动。最后一列不会在远程数据库中出现。
CALL ml_add_table_script( 'ver1', 'Customer', 'upload_insert', 'INSERT INTO Customer( cust_id, name, rep_id, active ) VALUES ( {ml r.cust_id}, {ml r.name}, {ml r.rep_id}, 1 )' ); |
以下对 MobiLink 系统过程的调用在同步脚本版本 ver1 时将名为 uploadInsertTable 的 Java 方法注册为 upload_insert 表事件的脚本。
CALL ml_add_java_table_script( 'ver1', 'table1', 'upload_insert', 'ExamplePackage.ExampleClass.uploadInsertTable' ) |
以下是 Java 方法 uploadInsertTable 示例。它动态生成 INSERT 语句。此语法用于 SQL Anywhere 统一数据库。
public String uploadInsertTable() { return("INSERT INTO " + _curTable + getCols(_curTable) + " VALUES " + getQM(_curTable)); } |
以下对 MobiLink 系统过程的调用在同步脚本版本 ver1 和表 table1 时将名为 UploadInsert 的 .NET 方法注册为 upload_insert 表事件的脚本。此语法用于 SQL Anywhere 统一数据库。
CALL ml_add_dnet_table_script( 'ver1', 'table1', 'upload_insert', 'TestScripts.Test.UploadInsert' ) |
以下是 .NET 方法 UploadInsert 示例。它返回一条针对 ULCustomer 表的 INSERT 语句。
public static string UploadInsert() { return("INSERT INTO ULCustomer( cust_id, cust_name ) VALUES ( {ml r.cust_id}, {ml r.cust_name} )"); } |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |