开放式数据库连接 (ODBC) 接口是由 Microsoft Corporation 定义的,它是 Windows 环境中用于连接客户端应用程序与数据库管理系统的标准接口。可通过指定连接参数来进行连接。通常,可以方便地收集一组连接参数,并将它们存储到某个 ODBC 数据源中。ODBC 数据源是保存连接参数以供重复使用的简便方法。
有关详细信息,请参见使用 ODBC 数据源。
本节介绍如何在 Windows 桌上型计算机上创建 ODBC 数据源,以连接到 Windows CE 设备上运行的数据库。
创建 ODBC 数据源以连接到 Windows CE 设备
打开桌上型计算机上的 ODBC 管理器。
从 [开始] 菜单,选择 [程序] > [SQL Anywhere 9] > [Adaptive Server Anywhere] > [ODBC 管理器]。
即会出现 ODBC 管理器。
在 [用户 DSN] 选项卡上,单击 [添加]。
出现 [创建新数据源] 对话框。
选择 [Adaptive Server Anywhere 9.0],然后单击 [完成]。
即会出现 [ODBC 配置] 对话框。
在 [ODBC] 选项卡的 [数据源名称] 字段中,键入数据源的名称。
例如,键入 CEdevice。
在 [登录] 选项卡上,选择 [提供用户 ID 和口令],并将 [用户 ID] 和 [口令] 字段保留空白。
每次连接到数据库时,您都需要提供用户 ID 和口令。
提示
连接到数据库时,缺省用户 ID 为 DBA。缺省口令为 SQL。
在 [数据库] 选项卡上,将 [服务器名] 字段保留空白。
每次从桌上型计算机连接时,您都必须指定服务器名。此名称出现在 Windows CE 设备的 [服务器消息] 窗口的标题栏中。
在 [网络] 选项卡中,选择 [TCP/IP] 复选框。
在相邻字段中,键入连接参数。
例如,键入 host=127.0.0.1;DoBroadcast=none;VerifyServerName=NO。
Host 此参数指定 Windows CE 设备监听的 IP 地址。
如果您必须编辑注册表才能连接到 Windows CE 设备,请使用缺省 IP 地址 127.0.0.1。
有关详细信息,请参见编辑注册表。
否则,请使用 Windows CE 设备的 IP 地址。
有关详细信息,请参见确定 Windows CE 设备的 IP 地址。
有关详细信息,请参见使用 TCP/IP 协议。
DoBroadcast 此参数控制进行 TCP/IP 连接的方式。
如果指定 DoBroadcast=none,则直接使用指定的端口进行 TCP/IP 连接。如果您必须编辑注册表才能连接到您的 Windows CE 设备,则使用此设置。
有关详细信息,请参见编辑注册表。
当指定 DoBroadcast=direct 时,要搜索数据库服务器,不需要对本地子网执行广播。但需要提供主机 IP 地址。
有关详细信息,请参见确定 Windows CE 设备的 IP 地址。
单击 [确定] 以创建该数据源。
现在,您可以使用刚创建的数据源从桌上型计算机连接到 Windows CE 设备上运行的数据库。
编辑注册表:
1.停止桌上型计算机和 Windows CE 设备上运行的所有 Adaptive Server Anywhere 数据库服务器。
2.将 Windows CE 设备从其底座中取出。
3.打开桌上型计算机上的注册表编辑器。
4.在命令提示符处键入 regedit。
5.在注册表编辑器中,打开下面的项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services\ProxyPorts。
从 [编辑] 菜单中,选择 [新建] > [DWORD 值]。
输入名称 ASA。
6.双击您刚刚创建的 ASA 项。
7.为其指定十进制值 2638。
这是 Adaptive Server Anywhere 的缺省 TCP/IP 端口值。
注意
每次将 Windows CE 设备安装到底座时,ActiveSync 会将端口 2638 上的通信转发给该设备。因此,如果将 Windows CE 设备安装到底座时启动桌上型计算机上的服务器,则无法使用缺省端口 2638。如果出现这样的问题,您可以选择其它端口来专门传输 Windows CE 通信。
8.单击 [确定]。
对Symbol设备的补充:
今天准备连接Symbol MC9090的设备,居然odbc连接失败,提示我"TCPIP requires a server name". 郁闷! :(
难道连Symbol的设备需要制定Server的名字? 立马输了密码,还是不行!错误提示为"Database Server not found".
这下被雷了,没折了! Go Google!折腾半小时也没有钩到什么. 最后自己瞎折腾了好久,试验出一个解决的办法. 步骤如下:
1.指定 DoBroadcast=direct (要搜索数据库服务器,不需要对本地子网执行广播)
2.指定设备的IP 地址
最终的TCP/IP字符串类似为 host=169.254.2.1;DoBroadcast=direct;VerifyServerName=NO
Note: 原来的TCP/IP字符串 host=127.0.0.1;DoBroadcast=ALL;VerifyServerName=NO
Character Set: utf-8