创建 ODBC 数据源以连接到 Windows CE 设备[SQL Anywhere]

开放式数据库连接 (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

http://www.cppblog.com/missautumn/archive/2007/06/26/26980.html

原文地址:https://www.cnblogs.com/kofkyo/p/2297301.html