Informix与VFP之间用ODBC实现数据连接

更新时间:2024-01-12 00:01:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

利用ODBC实现Informix_Online

与VFP之间的数据连接

四川南充市建行市分行科技处

罗永强

一、引言

关系型数据库Informix-Online 被大量应用与企业MIS系统,其操作系统平台一般都是UNIX,如何充分利用Informix-Online数据库中的数据,并且方便程序开发,是一个值得探讨的问题,Informix公司提供的基于 Windows95或Windows NT的客户端连接工具Informix2.5_Clients32可以很方便地将

Informix_Online服务器端的数据与Windows95或Windows NT连通。本文以系统结构为Client/Server方式,服务器端采用HP - K410/9000小型计算机,操作系统平台为HP_UX,数据库平台是Informix_online为例,说明如何实现Informix_Online与Windows下Visual Foxpro数据连接。

二、服务器端配置

作为Informix公司提供的基于 Windows95或Windows NT的客户端连接工具Informix2.5_Clients32,可以将Informix_Online服务器端的数据与Windows95或Windows NT连通,在Windows95或Windows NT下通过ODBC服务器,就可实现Informix_Online与Visual Foxpro之间的数据连接。

UNIX与Windows操作系统之间的采用TCP/Ip作网络协议,Informix的客户端连接工具通过该协议的特定服务(services)实现数据库服务器与客户端的连接,完成数据的交换。需修改的连接配置文件有两个,文件/etc/hosts 管理网络站点,文件/etc/services指定基于TCP/IP的合法服务(service),该文件包括三个字段(服务名、端口号/协议、别名(可选项))。本例中,在服务器端主机的services文件中定义了“cxon 6666/tcp”用于数据库的连接。客户端PC在连接入服务器端时,必须在UNIX端有合法用户,本例在服务器端为客户端建立了查询用户(其权限控制通过Informix_Online的授权语句实现),用户名是“sjcx”。Informix_Online的服务器上数据库服务器的用户名是informix,用户的注册组为Informix。与连接相关的数据库服务器配置文件有两个,一个是数据库系统配置文件,由Informix用户的环境变量 ONCONFIG指定,缺省情况该文件存放在

$INFORMIXDIR/etc目录;另一个是连接文件$INFORMIXDIR/etc/sqlhosts。文件$INFORMIXDIR/etc/onconfig中的参数DBSERVERNAME(数据库服务器名)、DBSERVERALIASES(数据库服务器别名)和NETTYPE(网络类型)将在连接文件$INFORMIXDIR/etc/sqlhosts中使用。参数DBSERVERNAME和参数DBSERVERALIASES

由初始化数据库时用户设定,本例中分别为“onser”和“onser1”,参数NETTYPE的值由三部分组成:

d d i i i p p p

1)其中开始两个字符表示数据库服务器产品: on Online 产品 ol Online 产品

se Informix-SE 产品 dr DRDA的Informix 网关

2)中间三个字符表示网络类型:

ipc IPC(Interprocess communications)方式的通讯 soc 套结字(sokets)方式的通讯

tli TLI(transport level interface)方式的通讯

3)最后两个字符指定IPC结构或者通讯协议: shm 共享内存通讯 tcp TCP/IP网络协议 spx IPX/SPX网络协议

连接文件$INFORMIXDIR/etc/sqlhosts的每项内容由四个字段组成:

数据库服务器名字段(DBSERVERNAME) 网络类型字段(NETTYPE) 站点名称字段(hostname) 服务名字段(servicename)

其中,数据库服务器名字段(DBSERVERNAME)和网络类型(NETTYPE)从

Informix_Online配置文件$INFORMIXDIR/etc/onconfig中取得,本例中是数据库服务器名是“onser”, 网络类型(NETTYPE)是“onsoctcp”, 站点名称字段

(hostname)指数据库服务器所在的主机站点名,本例中是“cen”; 服务名字段(servicename)与网络类型字段(NETTYPE)指定的连接方式有关,对于采用

TCP/IP协议时,该字段描述的内容必须已经在系统文件/etc/services中定义过,其值是文件/etc/services中的“服务名”字段值,并且在客户机端的services文件中有同样的指定。因此对于连接文件$INFORMIXDIR/etc/sqlhosts中应该包括如下内容:

onser onsoctcp cen cxon

在Windows 95的文件配置时,同样需要修改文件hosts和services,文件hosts中指定服务器和客户机的IP地址和站点名,应包括如下内容:

131.92.34.10 node1 131.92.34.1 cen

在Windows 95端用于数据库连接的TCP/IP服务的配置文件services中加入如下内容:

cxon 6666/tcp

以上配置完成后,可以配置客户端连接工具Informix2.5_Clients32,实现数据库服务器端与客户机端的连接。

三﹑客户端连接工具Informix2.5_Clients32的配置 1. 在Windows95系统上安装Informix-CLI。

2. Windows95系统上ODBC的配置 1) 定义[Server Information]

在菜单中运行Informix SetNet 32,进入Informix Sernet32窗口, 定义[Server Information]。

单击Server Information,进入Server Information定义。输入:

Informix Server: onser [Informix 服务器名] Hostname: cen [主机名] Protocolname: onsoctcp [协议名] Service Name: cxon [服务名] 之后,选中[Make Default Server]按钮。

2) 定义Host Information

---- 选中Host Information页面,定义Host Information:

输入:

Current Host: cen [当前主机名] User Name: sjcx [用户名] Password Option:Password Password: xxxxx [用户sjcx的口令] 之后,选中[确定]。

3) 配置Windows95的Hosts和Servi I. Hosts文件

加入本机IP地址及Informix服务器的IP地址。如:

131.92.34.10 node1 (Local) 131.92.34.1 cen

II. Srvices文件

加入服务名及入口,服务名为cxon,入口为6666/tcp,即如下格式: cxon 6666/tcp

4) Informix-CLI连接测试

在菜单中运行[Ilogin 32 Demo],[File]?[Run] ?[OK] ,出现[Custom Records Found]窗口,即表示Informix-CLI已通过ODBC与远程Informix主机的Informix库连通。出错时,会给出错误信息框。在菜单中运行[Informix Find Error],根据错误信息框中的出错代码查找出错原因。

5) 配置Windows95端ODBC

在菜单中运行ODBC Admistrator 32,进行如下定义: I. 用户DSN

自定义:informix_sjjk

驱动程序:Informix-CLI 2.5 II. 按“设置”按钮,进行配置 规定输入值:

data source name : informix_sjjk [数据源名称] description:

database name: workdb [数据库名称]

说明:此处数据库名是指,数据库服务器中供客户机端使用的数据库名。 III. 按advance按钮,做进一步设置: 输入样例: database list:

default user name: sjcx [缺省用户名设为sjcx] host name: cen [主机名] service name: cxon server name: onser

protocol type : onsoctcp yield proc: none

cursor behavior: close

enable scrollable cursors: disabled get DB list from informix: yes enable insert cursors: no

单击“close”,完成ODBC的设置。

四﹑Visual Foxpro对服务器端的数据调用

通过上述配置后,已经实现了数据库服务器端与客户机端的连接,下面介绍如何在Visual Foxpro中调用远程数据库中的数据。在Visual Foxpro中对远程数据的使用须通过数据库的远程视图完成,数据库远程视图的建立在对数据源的数据

连接(connection)上。对数据连接可以通过命令方式和交互式的菜单方式建立,这里介绍命令方式的命令格式:

CREATE CONNECTION [ConnectionName | ?] [DATASOURCE cDataSourceName]

[USERID cUserID] [PASSWORD cPassWord] [DATABASE cDatabaseName]

| CONNSTRING cConnectionString] 参数含义:

ConnectionName 指定要建立的连接的名称. ? 显示连接设计器.

DATASOURCE cDataSourceName 指定所建连接对应的ODBC数据源名称. USERID cUserID 指定对应的ODBC数据源的用户ID.

PASSWORD cPassWord 指定对应的ODBC数据源的用户口令

DATABASE cDatabaseName 指定建立连接的服务器端的数据库名称. CONNSTRING cConnectionString 指定ODBC 数据资源的连接串.

当数据连接建立成功后,可以建立远程视图,将远程数据库中的数据表映射成本地数据表,就可以在本地进行所有的类似本地的操作,诸如检索﹑统计﹑修改﹑排序等。当然在具体实现中,可能因为各种因素导致数据连接失败,作为程序设计必须充分考虑可能出现的各种情况,对此采用了Visual Foxpro提供的SQLCONNECT函数作为出错时的非正常处理:

SQLCONNECT([DataSourceName, cUserID, cPassword | cConnectionName]) 参数:

DataSourceName 指定所建连接对应的ODBC数据源名称.. cUserID 用于注册到ODBC数据源的用户ID. cPassword ODBC数据源的用户口令

cConnectionName S由命令 CREATE CONNECTION.建立的数据源名称

返回:

SQLCONNECT( ) 当成功连接到数据源时返非零的数值型句柄,如果

SQLCONNECT( )使用时没有任何可选项时,将出现对话框提示输入上述数据。

这样就可以在Windows下以visualFoxpr为设计工具开发应用程序,调用后台服务器中的数据。

本文来源:https://www.bwwdw.com/article/z5no.html

Top