progress数据库
‘壹’ PHP通过ODBC连接到PROGRESS数据库
Progress的ODBC并不是通用的,需要用专门的ODBC工具软件来连接,最常用的是Merant ODBC,此以Merant3.7来介绍如何连接progress数据库,由于可能存在不同的操作系统,当然连接方式有些不同.使用Merant3.7需要在客户端安装Progress数据库才可以.
服务端unix(即数据库存放在unix上),客户端window2000服务器配置:
1.在/etc/services配置文件中添加一行启动odbc的端口,例如:
merant 6000/tcp # merantODBC的端口
2.在需要使用odbc的用户的.profile文件中增加变量及路径例如:
DLC=/dlc/91e /*安装的progress的路径*/
PROOIBRK=/dlc/91e/bin/_prooibk /*需要调用的程序的路径*/PROOIDRV=/dlc/91e/bin/_prooidv /*需要调用的程序的路径*/PATH=/dlc/91e/bin:$PATH
export PATH
export DLC
export PROOIBRK
export PROOIDRV
3.执行启动odbc的命令
例如:
/dlc/91e/bin/_prooibk -SV -S merant /*根据progress安装的目录不同会不同,merant是services中增加的端口名称,两边可以随便取名字但必须一样*/客户端配置:
1.同服务端配置一样需要在C:WINNTsystem32driversetc的services文件中增加一行例如:
merant 6000/tcp # merantODBC的端口
2.在系统控制台增加环境变量,建议增加系统的环境变量,根据客户端progress安装的目录不同,可能有所不同DLC c:dlc The directory where you installed the Progress client piecesIDLC c:dlc Required only for 8.1 or higher clientsPROMSGS c:dlcpromsgs The directory and name of the message fileIPROMSGS c:dlcpromsgs Required only for 8.1 or higher clientsPATH c:dlcbin;c:dlc;c:winNTsystem32;%path% Example for Windows NTTEMP c:temp
3.在odbc数据源中作如下配置:
general:
data source name:自己取名
description:随便
database name:数据库的名字
user id:不填
oid/oib options:
protocol:tcp
service name:在services文件中加的merantodbc的端口名称host name:服务器的名称或ip(建议用ip,否则还要在hosts文件中加解析)database options:
database access mode:via server
protocol:tcp
service name:启动数据库的端口名(是在服务端启动数据库服务的端口名也是在服务端的services文件中)host name:启动数据库服务的机器名或ip(推荐ip)完成后应该可以连接上了
‘贰’ asp.net连接两个不同的数据库
正做一个类似的项目,是PROGRESS数据库和SQLSERVER2000数据库对接的。要迁移许多表。你的只迁移一个表还是很简单的。不过运行一次只能导入一次更新的数据,数据库时时更新的话得让它定时执行。
需要建立2个类,分别和这2个数据库连接。
拿到DB1的连接进行SELECT找到数据,再用DB2的连接INSERT数据,就完成功能了。
如果数据量大要用分页代码,不然一次SELECT的数据缓存里是装不下的。
‘叁’ 请教一个ODBC连接progress数据库的问题
Windows 客户端:
1、在 C:\windows\system32\drivers\etc\services 文件中加入一行:
merant 50000/tcp # merant ODBC
注:这跟上面在 Linux 服务器中的配置是一样的,必须与服务器端一致,上面使用了 50000 端口,这里也使用 50000 端口。
2、配置数据源,添加一个数据源,各选项参数如下:
[General]
Data Source Name:给数据源取名,便于在程序中引用
Description:数据源描述说明,随便写
Database Name:数据库的名字,比如 mfgprod
User ID:可不填(这个用户名是 Progress 数据库自己的用户名,不是 Windows 或 Linux 用户,也不是 MFG/PRO 用户,如果数据库设置为拒绝匿名访问的话就要填写)
[Oid/Oib Options]
Protocol:TCP (连接类型,就是你在 services 文件中设定的连接类型)
Service Name:端口名称,在 services 文件中加的 merantODBC 的端口名称,如 merant(其实直接用端口号也可以,这样就不用在 services 文件中定义端口了)
Host Name:服务器的名称或IP(建议用IP,否则还要在 hosts 文件中加解析)
[Database Options]
Database Access Mode:Via Server (连接方式,分 Direct 和 Via Server,最好使用 Via Server,如果使用 Direct 的话,直接在 Database path 里填入数据库所在的物理路径即可,以下各项不需再填)
Protocol:TCP (这里应该是你数据库的端口类型,我还没弄清楚,一般填 TCP 即可)
Service Name:启动数据库的端口名(注意,这是你的数据库本身的端口名,即你在服务器端用 mfgutil 工具所设定的端口,不要问我 mfgutil 怎么用,实在不知道,可以查看一下数据库在 MFG/PRO 里对应的 .pf 文件,里面有写的)
Host Name: 服务器的名称或IP(推荐IP)
最后,点 Test Connect 测试连接即可,成功的话会显示 Connect establish。
其实用 ODBC 连接 Progress 并不复杂,总的来说就是在服务器端启动 ODBC 服务,然后在客户端使用 ODBC 软件连接,而其它的步骤只是为了方便它而已,比如定义端口,或者添加搜索路径(没多大影响,本教程中省略此步)等,最关键就是要在服务器端成功启动 ODBC。