Windows上命令行实现运行时添加ODBC数据源-odbcconf命令的使用

     最近做的一个项目要求程序可以自动在windows上添加一个ODBC数据源,发现可以用Windows API中的SQLConfigDataSource函数可以实现,在查看MSDN文档时,这个函数等同于odbcconf.exe命令行工具。最好是使用SQLConfigDataSource自己实现一个application,用来创建ODBC数据源,但是使用odbcconf.exe命令行工具,然后通过java来调用也能实现该功能,于是就使用了它。

    该命令在msdn上可以查看到详细的参数的含义,msdn的链接:http://msdn.microsoft.com/en-us/library/ee388579%28v=vs.85%29.aspx

    主要用到是 /A {action} 这个参数,action可以有种选项,查看msdn一看便知,最主要的是使用CONFIGSYSDSN,就是创建一个系统DSN,这个命令的格式为

CONFIGSYSDSN driver_name DSN=name|attributes

     由此看出, 我们知道创建一个数据源的时候,需要指定用什么driver,是SQL Server还是Oracle还是其他什么数据库类型,它是通过指定driver的名称实现的。创建数据源时还需要要填入数据库所在的机器,数据库的名称,用户名,密码等信息,不同类型的数据库驱动这些信息是不一样的,这些信息怎样通过命令参数添加上去呢,使用DSN=name |attributes这样一个字串的方式,把数据库的机器名,用户名,密码等信息作为attributes放置到DSN=name后面,不同属性用竖线分隔,DSN=name这个是必须有的,就是你的DSN的名字是什么,然后后面就是那些属性。

      以我项目中的设置为例子,driver是Virtual View Manager 8.4,DSN需要设置,主机名,用户名,密码,数据库名,域名,目录名等,于是这些信息组成了字符串DSN=vvmfilenetp8;UID=admin;PWD=admin;DOMAIN=cognos;HOST=localhost;PORT=9401;DATASOURCE=fn;CATALOG=catalog;

整个命令行看起来如下

odbcconf.exe /A {CONFIGSYSDSN "Virtual View Manager 8.4" "DSN=vvmtest;UID=admin;PWD=admin;DOMAIN=cognos;HOST=localhost;PORT=9401;DATASOURCE=db;CATALOG=catalog;"}
 

      当然不同数据库类型的DSN的属性都是不同的,具体是什么格式,需要自己去查看。

执行完这一命令,再去windows的ODBC数据源那里查看,名称为vvmtest的系统DSN就添加上去了。

当然你也可以使用INSTALLDRIVER参数先安装driver,实现安装driver,然后添加数据源都在程序中自动完成。具体如何使用可以查看msdn文档的说明。

      以上就算是抛砖引玉,该命令还有许多别的参数,可以实现其他功能。具体可以查看msdn。

通过以上的实践,作者感觉查看文档,看懂文档非常重要,它能帮助你自己解决很多问题。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要从 Linux 上的 PHP 连接到 MS Access 远程 .mdb 文件,需要使用 ODBC(Driver for Microsoft Access)。 以下是连接步骤: 1. 安装 unixODBC 和 php-odbc 扩展 ``` sudo apt-get install unixodbc php-odbc ``` 2. 安装 ODBC Driver for Microsoft Access 下载适合您的系统的 ODBC Driver for Microsoft Access,并按照说明进行安装。 3. 配置 ODBC 数据源 使用命令行工具 odbcinst 配置 ODBC 数据源: ``` sudo odbcinst -i -d -f /usr/local/easysoft/access/odbc-access/driver/etc/odbcinst.ini ``` 其中 /usr/local/easysoft/access/odbc-access/driver/etc/odbcinst.ini 是您安装 ODBC Driver for Microsoft Access 后的 odbcinst.ini 文件路径。 4. 配置 DSN(数据源名称) 使用命令行工具 odbcconf 配置 DSN: ``` sudo odbcconf -a -s "accessdsn" -f /usr/local/easysoft/access/odbc-access/driver/etc/odbc.ini -c "DSN=accessdsn|DBQ=/path/to/your/access/database.mdb" ``` 其中 /path/to/your/access/database.mdb 是您要连接的远程 .mdb 文件路径。 5. 编写 PHP 代码 使用 PHP 的 odbc_connect 函数连接到 MS Access 数据库: ```php $conn = odbc_connect("accessdsn", "", ""); if (!$conn) { exit("连接数据库失败!"); } ``` 请注意,您需要将 "accessdsn" 更改为您在步骤 4 中配置的 DSN 名称。 6. 查询数据 使用 PHP 的 odbc_exec 函数查询数据,例如: ```php $result = odbc_exec($conn, "SELECT * FROM table_name"); while ($row = odbc_fetch_array($result)) { echo $row["column_name"]; } ``` 以上是从 Linux 上的 PHP 连接到 MS Access 远程 .mdb 文件的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值