某C程序在操作數據庫時,是以文件dsn形式來讀取ODBC數據源。當該程序移植到Linux平台和PostgreSQL數據庫時遇到一點麻煩,即如何簡單易行地創建文件dsn?
遺憾的是,在網上幾乎搜索不到Linux + PostgreSQL + 文件dsn的方法。
通過多次實踐,終於找到一種簡單的方式:
- 在Linux上安裝unixODBC;
- 在Linux安裝psqlODBC;
- 配置/etc/odbcinst.ini和/etc/odbc.ini文件;
- 手工生成文件dsn文件。
其中前三個步驟是必須的,也很容易在網上搜索到,不再贅述。
對於最后一步,將Windows上的一個PostgreSql的文件dsn拷貝過來,再修改Driver項即可。比如:
[ODBC] DRIVER=/usr/local/lib/libpsqlodbc-x.x.x.so UID=pg_file_dsn XaOpt=3 GssAuthUseGSS=0 LowerCaseIdentifier=0 UseServerSidePrepare=1 ByteaAsLongVarBinary=0 BI=0 TrueIsMinus1=0 UpdatableCursors=1 LFConversion=1 ExtraSysTablePrefixes=dd_ Parse=0 BoolsAsChar=1 UnknownsAsLongVarchar=0 TextAsLongVarchar=1 UseDeclareFetch=0 CommLog=0 Debug=0 MaxLongVarcharSize=8190 MaxVarcharSize=255 UnknownSizes=0 Fetch=100 ConnSettings= ShowSystemTables=0 RowVersioning=0 ShowOidColumn=0 FakeOidIndex=0 Protocol=7.4-1 ReadOnly=0 SSLmode=disable PORT=5432 SERVER=10.100.1.100 DATABASE=mydb