您好,登錄后才能下訂單哦!
????通過安裝了PostgreSQL ODBC驅動,然后通過OTL進行數據庫的訪問
代碼
void TestByOtl()
{
?odbc::otl_connect db;
?odbc::otl_connect::otl_initialize();
?try {
??db.rlogon("Driver={PostgreSQL Unicode};Server=192.168.10.227;Port=5432;Database=pas;Uid=postgres;Pwd=admin12345");
??odbc::otl_cursor::direct_exec(
????db,
????"create table student (id int, name varchar(30))"
????);?
??odbc::otl_cursor::direct_exec(
???db,
???"insert into student values(31090012, 'fengyuzaitu@126.com')"
???);
?}
?catch (odbc::otl_exception& p) { // 捕獲OTL異常
??cerr << p.msg << endl; // 打印錯誤信息
??cerr << p.stm_text << endl; // 打印引起錯誤的SQL語句
??cerr << p.sqlstate << endl; // 打印引起錯誤的SQL狀態
??cerr << p.var_info << endl; // 打印引起錯誤的變量
?}
?db.logoff();
}
注意 ?? 1)
????????????默認情況下,調用direct_exec函數創建表,不能直接通過pgAdmin直接查詢到表的存在,必須進行刷新,或者調用登陸退出函數?db.logoff,才能夠將數據刷新到數據庫中
注意
????????????沒有安裝PostgreSQL ODBC驅動,調用rlogon會拋出異常:[Microsoft][ODBC 驅動程序管理器] 未發現數據源名稱并且未指定默認驅動程序
知識準備)宏定義OTL_ODBC在預編譯聲明指定的時候,將調用PostgreSQL ODBC驅動。PostgreSQL至少有兩套ODBC驅動,有些必須在調用的時候,指定OTL_ODBC_POSTGRESQL宏定義聲明。如下的不同平臺
的調用區別:
Linux:定義聲明OTL_ODBC_POSTGRESQL,調用psqlodbc.so,? psqlodbcw.so庫文件
Linux:定義聲明OTL_ODBC,調用libodbcpsql.so庫文件
Solaris:定義聲明OTL_ODBC_POSTGRESQL,調用libodbcpsql.so庫文件
Windows:定義聲明OTL_ODBC_POSTGRESQL,調用pgsqlodbc30a.dll, pgsqlodbc35w.dll庫文件(摘自http://otl.sourceforge.net/otl3_compile.htm)
探索)嘗試不用通過安裝ODBC,直接調用?pgsqlodbc30a.dll, pgsqlodbc35w.dll庫文件,進行數據庫的訪問,是否可行?
手動通過import調用pgsqlodbc30a.dll, pgsqlodbc35w.dll,或者LoadLibrary無效
?
????????????
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。