PHP通过ODBC连接到PROGRESS数据库?

<?php

$conn = odbc_connect("DRIVER={Progress OpenEdge 10.1B driver};DSN=progress_read;HOST=192.168.0.59;DB=mfgprod;UID=admin;PWD=123;PORT=9999;");

if($conn)
echo "成功!";
else
echo "失败!";

?>

为什么一直都输出失败?

    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)完成后应该可以连接上了

追问

我的ODBC是已经建立好了的,并且测试连接成功的,用ACCESS数据库都可以直接调用,不晓得是不是ODBC连接字符串的问题?

温馨提示:答案为网友推荐,仅供参考