ado、odbc连接Postgre SQL

http://blog.csdn.net/bao_qibiao/article/details/5330174

请先看这篇文章 PostgreSQL OLEDB 安装指南

文章中提及:

首先,从下面的站点下载最新的OleDB Provider For PostgreSQL。
http://gborg.postgresql.org/project/oledb/download/download.php 

在下载的包中有两个文件,一个是libpq.dll,另一个是PgOleDb.dll。在安装的时候通常这两个文装应放在一起。然后在使用 RegSvr32 PgOleDB.dll 来注册。这样,Ole DB Provider For PostgreSQL才可以被ADODB所使用。
接下来,你就可以使用ADODB来连接PostgreSQL数据库,以下是相应的连接字符串的
Provider=PostgreSQL OLE DB Provider;Password="";User ID=postgres;Data Source=localhost;Location=template1;Extended Properties=""
其中Data Source是PostgreSQL的服务器名,我安装在本地机器,Location为数据库名称。

如果,你经常忘记该怎么来写连接字符串。你可以在Windows文件系统里创建一个后缀名为.udl的空白文件,然后双击该文件,进行填写
 ,然后用文本编辑器打开就可以看到连接字符串”。

 

要注意的是, 你需要libpq.dll和PgOleDb.dll放到系统目录(C:/windows/system32)里面,然后注册 。如果遇到其他异常情况,请参考http://www.connectionstrings.com/Providers/pgoledb 顺便提下,这个网站很不错http://www.connectionstrings.com/

 (

  • Standard

    PgOleDb requires a PQLib of version 7.4 or up and it also requires a backend of version 7.4 or up. Timestamps are only guarenteed to work with backends of version 8.0 and up.

    Provider=PostgreSQL OLE DB Provider;Data Source=myServerAddress;
    location
    =myDataBase;User ID=myUsername;password=myPassword;timeout=1000;

    Other valid Provider values is "PostgreSQL" and "PostgreSQL.1"

    PostgreSQL
  • Standard alternative

    Some reported problems with the above one. Try removing the timeout parameter to make it work.

    Provider=PostgreSQL OLE DB Provider;Data Source=myServerAddress;
    location
    =myDataBase;User ID=myUsername;password=myPassword;
)

如《 PostgreSQL OLEDB 安装指南 》那篇文章中所说,“ oledb for postgresql,经常出错,不适合正式场合用”,推荐使用ODBC,那么你可以到

http://www.postgresql.org/ftp/odbc/versions/msi/ 这里去下载安装。

安装后你首先需要在 开始菜单-管理工具-数据源(ODBC) 中添加数据源,才能如文章中所讲的在udl文件的配置中找到PostgreSQL。

 

下面是我的连接字符串:

ado(oledb):

strConnect = "Provider=PostgreSQL OLE DB Provider;Password=test;User ID=test;Data Source=10.13.76.80;Location=test;Extended Properties=""";

odbc,这个需要先配置数据源:

strConnect = "Provider=MSDASQL.1;Persist Security Info=False;User ID=test;Data Source=PostgreSQL30";

顺便带上个oracle的:

strConnect.Format("Provider=OraOLEDB.Oracle.1; Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL /
                    = TCP)(HOST = %s)(PORT =%s))(CONNECT_DATA =(SERVICE_NAME = %s)));User ID=%s;Password=%s; /
                 Persist Security Info=False",     strHost, strPort, strDataSource, strName, strPsw );

 

最后提下,(忘记刚才在哪看的了)postgresql的库文件不支持VC6,只支持高版本的VC.net。 如果非要在VC6里面使用libpq.lib,肯定需要用vcc编译器编译一编。

 

另一个有关初始化创建数据库的问题:http://deepfuture.javaeye.com/blog/587477

设置环境变量

“set PGHOME=d:/pgsql
set PATH=%PGHOME%/bin;%path% 
set PGHOST=localhost 
set PGLIB=%PGHOME%/lib 
set PGDATA=%PGHOME%/data”

常用命令

“1 initdb 初始化 数据库。(initdb --encoding=UTF8 --locale=C)
2 pg_ctl start 启动数据库 
3 pg_ctl stop 停止数据库 
4 post_svc -install 建立windows nt 服务(需要设置系统环境变量) 
5 post_svc -remove 删除 windows nt 服务 
6 使用"createdb 库名" 新建数据库 
7 使用"createuser 用户名"创建数据库帐号

8 使用"psql -h localhost -d 库名- U 用户名"进入数据库”


2

VC用ado连接postgresql

ado连接数据库没有什么好说的 。关键是要注册 OleDB驱动程序
首先下载驱动程序去官网下载或者 网盘下载 
然后解压到一个文件夹里cmd进入目录
regsvr32 PgOleDb.dll 注册成功了会显示 然后就可以用ado连接了 
连接字符串为_bstr_t strConnect ="Provider=PostgreSQL OLE DB Provider;Password=root;User ID=postgres;Data Source=localhost;Location=postgres;";

你可能感兴趣的:(ado、odbc连接Postgre SQL)