Collection Contents 上一页 下一页 PDF

MobiLink 管理指南

同步事件

modify_user 连接事件


功能 

提供 MobiLink 用户名。

参数 

在下表中,[说明] 部分提供 SQL 数据类型。如果您使用 Java 或 .NET 编写脚本,则应该使用相应的数据类型。请参见 SQL-Java 数据类型SQL-.NET 数据类型

参数 说明
1 ml_username VARCHAR(128)。这是一个 INOUT 参数。
缺省操作 

无。

说明 

MobiLink 服务器在调用脚本时以参数形式提供用户名,用户名由 MobiLink 客户端发送。在某些情况下,您需要使用另一个用户名。该脚本可用于修改在调用 MobiLink 脚本过程中使用的用户名。

ml_username 参数必须足够长以保存用户名。

modify_user 事件的 SQL 脚本必须作为存储过程实现。

另请参见 
SQL 示例 

下面的示例在 Adaptive Server Anywhere 统一数据库中运行。它通过使用名为 user_device 的映射表将远程数据库用户名映射到使用该设备的用户的 id。当同一个人拥有需要相同同步逻辑(根据该用户的名称或 id)的多个远程(如 PDA 和膝上型计算机)时,可以采用此技术。

call ml_add_connection_script(
 'ver1',
 'modify_user',
 'call ModifyUser( ? )'  )
CREATE PROCEDURE ModifyUser( INOUT u_name varchar(128) )
BEGIN
 select user_name
    into u_name
    from user_device
    where device_name = u_name
END
Java 示例 

下面的存储过程调用在同步脚本版本 ver1 时将名为 modifyUser 的 Java 方法注册为 modify_user 连接事件的脚本。

call ml_add_java_connection_script(
   'ver1',
   'modify_user',
   'ExamplePackage.ExampleClass.modifyUser' )

下面是示例 Java 方法 modifyUser。它从数据库获取用户 ID,然后使用该 ID 设置用户名。

public void ModifyUser( InOutString io_user_name )
  throws SQLException
{  Statement uid_select = curConn.createStatement();
   ResultSet uid_result = uid_select.executeQuery(
   "select rep_id from SalesRep where name = '" +
   io_user_name.getValue() + "' " );
   uid_result.next();
   io_user_name.setValue(
   java.lang.Integer.toString(uid_result.getInt( 1 ))
   uid_result.close();
   uid_select.close();
   return; }
.NET 示例 

下面的存储过程调用在同步脚本版本 ver1 时将名为 ModUser 的 .NET 方法注册为 modify_user 连接事件的脚本。

call ml_add_dnet_connection_script(
  'ver1',
  'modify_user',
  'TestScripts.Test.ModUser'
)

下面是调用 ModUser 的 C# 签名。

public void ModUser( string user )

Collection Contents 上一页 下一页 PDF