在 Windows Mobile 上重建数据库时,可采用以下方法:
在另一个平台上重建 Windows Mobile 数据库,然后将该数据库复制到 Windows Mobile 设备。这是重建 Windows Mobile 数据库的推荐方法。
使用 dbmlsync 重新填充空数据库。
使用 dbremote 重新填充空数据库。
在 Windows Mobile 设备上使用 dbunload。此方法在智能手机上不可用。
升级 Windows Mobile 数据库时,建议使用前三种方法。但是,如果这些方法对您不适用,则您可在 Windows Mobile 上使用 dbunload。决定在 Windows Mobile 上使用 dbunload 之前,应考虑在 Windows Mobile 上使用 dbunload 产生的以下影响:
数据库服务器临时文件的大小(卸载和重装都可能使此文件增至数兆字节)
dbunload 及相关组件所需的额外空间
在 Windows Mobile 设备上具有多个数据库副本的额外开销
因为在 Windows Mobile 设备上运行 dbunload 所需要的资源可能会比一些设备可用的资源更多,所以建议尽可能在其它平台上升级数据库。
如果要在 Windows Mobile 设备上运行 dbunload,必须在 [部署 SQL Anywhere 11 for Windows Mobile 向导] 中选择 [卸载/重装支持]。如果在首次安装 SQL Anywhere for Windows Mobile 时未选择该选项,则可通过修改 SQL Anywhere 安装来添加此支持。
要在 Windows Mobile 设备上使用 dbunload,请确保执行了以下任务:
应将以下文件部署到 SQL Anywhere 安装目录(缺省情况下为 \Program Files\SQLAny11):
应将以下文件部署到 \Windows 目录:
应将以下注册表条目字符串值设置为 SQL Anywhere 软件目录:HKEY_LOCAL_MACHINE\SOFTWARE\Sybase\SQL Anywhere\11.0\Location。
可将以下步骤嵌入第三方 Windows Mobile 应用程序中,以便自动对最终用户执行该过程。如果选择执行此操作,那么您应考虑使用 -qc 和/或 -q dbunload 和 dbrunsql 选项,或者调用 dbtool11.dll 中的 DBUnload 函数。
在 Windows Mobile 以外的其它平台上,创建一个新的空 SQL Anywhere 11 数据库。
CHAR 归类序列应与现有数据库的相匹配。如果不需要 NCHAR UCA 排序,则 NCHAR 归类序列应为 UTF8BIN。这样,数据库服务器就不需要 ICU 库(dbicu11.dll 和 dbicudt11.dll)。
将 SQL Anywhere 11 软件以及空 SQL Anywhere 11 数据库文件复制到 Windows Mobile 设备。请参见在 Windows Mobile 上使用 dbunload 的注意事项。
确保在设备上未运行任何数据库服务器。
运行以下命令:
dbunload-path\dbunload -c "UID=DBA;PWD=DBA-password;CHARSET=none;DBF=existing-database" unload-directory |
确保 dbunload 成功执行,然后关闭 dbunload 窗口。
运行以下命令:
dbrunsql-path\dbrunsql -c "UID=DBA;PWD=sql;CHARSET=none;DBF=new-empty-SQLAnywhere11databasefile" -g- \reload.sql |
确保 dbrunsql 成功执行,然后关闭 dbrunsql 窗口。
从 Windows Mobile 设备删除 reload.sql 文件和 unload-directory。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |