分页: 1 / 1

postgresql win7x64 odbc 问题。

发表于 : 2012-12-25 18:43
wkx9dragon
postgresql 在windows下用的人还是少呀,office vba编程更少了。以前xp下,postgresql x86 和office2003 加pgodbc,没问题呀,可是win7x64,office2007,postgresql x64,pgodbc x64,配置odbc源没事,可是office 2007 一连接就出现错误,配置的时候,测试都没有问题,弄了一早上,才搞定。
原来x86的office只能连接x86的pgodbc,就算postgresql 是64位的也不行。postgresql可以用x86的pgodbc哦。[对了32位的odbc和64位的postgresql配合时,注意odbc的配置不在控制面板里,而是\Windows\SysWOW64\odbcad32.exe]

例如vba 连接postgresql
...
Dim cnn As Object
Set cnn = CreateObject("ADODB.Connection")
'创建对数据库的连接
Dim database As String
Dim userName As String
Dim password As String
Dim DBName As String
Dim openCommand As String
database = "PostgreSQL35W"
userName = "operator"
password = "password"
DBName = "xxxxx"
openCommand = "DSN=" & database & ";" & "UID=" & userName & ";" & "PWD=" & password & ";" & "Database=" & DBName
cnn.Open openCommand

Dim rst As Object
Set rst = CreateObject("ADODB.recordset")
' rst.Open tableName, cnn, 3, 3
rst.Open "select * from " & tableName & " ;", cnn, 3, 3
(很奇怪,access 可以
rst.open tableName,cnn
postgresql 却不行,只能 rst.open "select * from " & tableName & ";" ,cnn
)
...
好多问题呀,vba连接access很方便的,postgresql却严格的多,好多程序通不过,比如 定义‘备注’列为text类型,如果插入数值类型,access后台自动转换为text类型,postgresql就通不过。