Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
运行安装脚本之前,您应了解以下要求:
运行安装脚本的数据库用户必须能够创建表、触发器和存储过程,因此必须具备 db_owner 角色。
运行安装脚本的数据库用户预期为同步过程中将更新 MobiLink 系统表的同一用户。必须使用此用户启动 MobiLink 服务器和配置 MobiLink 应用程序。 请参见所需权限。
MobiLink 服务器用于连接统一数据库的 RDBMS 用户必须能够使用 MobiLink 系统表、过程等,但不能使用任何限定符(例如,SELECT * from ml_user)。 请参见MobiLink 服务器系统表。
MobiLink 服务器登录 ID 必须具有 VIEW SERVER STATE 权限。此权限可使用以下 SQL 语句在 Microsoft SQL Server 的主数据库内授予:
grant view server state to user_name
MobiLink 服务器登录 ID 必须在 sys.databases 上具有 SELECT 权限。
要设置 Microsoft SQL Server 用作 MobiLink 统一数据库,必须运行设置过程,此过程将添加 MobiLink 同步所需的 MobiLink 系统表、存储过程、触发器和视图。可通过多种方法实现这一点:
运行 syncmss.sql 安装脚本,它位于 %SQLANY12%\MobiLink\Setup 中。
检查并更新 Sybase Central 中的 MobiLink 系统设置。请参见MobiLink 系统设置。
必须使用随附于 SQL Server 数据库的 ODBC 驱动程序为 SQL Server 统一数据库设置 ODBC DSN。请参见:
数据类型映射 列的数据类型必须在统一数据库和远程数据库之间正确映射。 有关详细信息,请参见Microsoft SQL Server 数据映射。
CHAR 列 在 Microsoft SQL Server 中,CHAR 数据类型长度固定并填充空白以达到字符串的全长。在 MobiLink 远程数据库(SQL Anywhere 或 UltraLite)中,CHAR 与 VARCHAR 相同:值不填充空白以达到固定宽度。建议在统一数据库中使用 VARCHAR 而不是 CHAR。如果必须使用 CHAR,在同步过程中可以使用 mlsrv12 -b 命令行选项删除字符串的尾随空白。此选项对于用于检测冲突的字符串比较十分重要。
请参见-b mlsrv12 选项。
SET NOCOUNT ON 对于 Microsoft SQL Server,应将 SET NOCOUNT ON 指定为所有存储过程或通过 ODBC 执行的 SQL 批处理中的第一个语句。
过程调用 Microsoft SQL Server 要求使用 ODBC 语法编写带有参数的过程调用:
{ CALL procedure_name( {ml param1}, {ml param2}, ... ) }
使用计算列的示例数据库 SQL Server AdventureWorks 示例数据库包含计算列。您不能上载到计算列。可以将列设置为仅下载,或从同步中排除该列。
在 upload_update 脚本中实现冲突检测 对于 SQL Server,必须在 upload_update 脚本中执行冲突检测和冲突解决。 请参见通过 upload_update 脚本解决冲突。
请参见MobiLink 隔离级别。