ado odbc連線Postgre SQL
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
http://blog.csdn.net/bao_qibiao/article/details/5330174
請先看這篇文章 PostgreSQL OLEDB 安裝指南
文章中提及:
“首先,從下面的站點下載最新的OleDB Provider For PostgreSQL。
在下載的包中有兩個檔案,一個是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;";