使用 .NET 实施同步脚本时最重要的部分在于通知 MobiLink 在哪里查找程序集中包含的程序包、类和方法。
使用 .NET 实施同步脚本:
创建您自己的类。为每个所需的同步事件编写方法。这些方法必须是公共的。
有关方法的详细信息,请参见方法。
每个包含非静态方法的类都应具有公共构造函数。在第一次调用每个类中的方法进行连接时,MobiLink 同步服务器将自动创建该类的一个实例。
有关构造函数的详细信息,请参见构造函数。
创建一个或多个程序集。在编译时,可引用包含 MobiLink API 类存储库的 iAnywhere.MobiLink.Script.dll,以在自己的 .NET 方法中使用。iAnywhere.MobiLink.Script.dll 位于 SQL Anywhere 安装目录的 win32 子目录中。
有关 MobiLink .NET API 的详细信息,请参见 MobiLink .NET API 参考。
您可以在命令行中或使用 Visual Studio .NET 或其它 .NET 开发环境来编译类。
从 Visual Studio .NET 中编译:
从 [VS.NET Project] 菜单中,选择 [Add Existing Item...]。
找到 iAnywhere.MobiLink.Script.dll;从 [Open] 下拉列表中选择 [Link File]:
注意:对于 Visual Studio .NET,请始终使用如上所示的 Link File 方法。不要使用 [Add Reference] 选项来引用 iAnywhere.MobiLink.Script.dll。[Add Reference] 选项将复制与类程序集位于同一物理目录的 iAnywhere.MobiLink.Script.dll,这会导致 MobiLink 同步服务器出现问题。 |
使用 Build 菜单生成程序集。
从命令行编译:
可以使用下面的命令从命令行引用 iAnywhere.MobiLink.Script.dll。
csc /out:c:\out.dll /target:library /reference:c:\iAnywhere.MobiLink.Script.dll sync_v1.cs
上面的示例假定已将 iAnywhere.MobiLink.Script.dll 复制到 c:\。
有关 API 的完整说明,请参见 MobiLink .NET API 参考。
在统一数据库的 MobiLink 系统表中,为每个同步脚本指定要调用的程序包、类和方法的名称。每个脚本版本中只允许存在一个类。
要将这些信息添加到 MobiLink 系统表中,最简单的方法是使用 ml_add_dnet_connection_script 存储过程或 ml_add_dnet_table_script 存储过程。
例如,如果在 Adaptive Server Anywhere 数据库中运行以下语句,这些语句将指定只要发生 authenticate_user 连接级别事件,即运行 myNamespace.myClass.myMethod。
call ml_add_dnet_connection_script( 'version1', 'authenicate_user', 'myNamespace.myClass.myMethod' )
注意:完全限定的方法名称区分大小写。 |
此过程调用的结果是,ml_script 系统表的 script_language 列必须包含单词 dnet。而 script 列中的字符串必须包含公共 .NET 方法的限定名称,script 列中包含使用 SQL 实现的脚本语句。
有关详细信息,请参见 ml_add_dnet_connection_script 和 ml_add_dnet_table_script。
您也可以使用 Sybase Central 添加此信息。
指示 MobiLink 服务器装载程序集并启动 CLR。可以使用 dbmlsrv9 命令行选项为 MobiLink 指定这些程序集的位置。有两个选项可以选择:
使用 -sl dnet ( -MLAutoLoadPath ) 此选项将给定路径设置为应用程序基目录,并装载该目录下的所有私有程序集。在大多数情况下都应使用此选项。例如,若要装载位于 c:\ 下的所有程序集,请输入:
dbmlsrv9 -c "dsn=consolidated1" -sl dnet(-MLAutoLoadPath=c:\)
如果使用 -MLAutoLoadPath 选项,在输入事件脚本的完全限定方法名称时不能指定域。
有关装载程序集的详细信息,请参见装载程序集。有关 dbmlsrv9 的选项 -sl dnet 的详细信息,请参见 -sl dnet 选项。
使用 -sl dnet ( -MLDomConfigFile ) 此选项需要一个包含域和程序集设置的配置文件。如果要使用共享程序集,如果不想装载目录中的所有程序集,或如果由于某种原因需要使用配置文件,则应使用此选项。
有关装载共享程序集的详细信息,请参见装载程序集。有关 dbmlsrv9 的选项 -sl dnet 的详细信息,请参见 -sl dnet 选项。
注意:可以使用 -MLAutoLoadPath 选项,也可以使用 -MLDomConfigFile 选项,但二者不可同时使用。 |
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。