【发布时间】:2019-12-29 00:24:46
【问题描述】:
我有一个连接到 PostgreSQL 数据库的 Microsoft Excel 工作簿。我已经在 localhost 上使用 db 有一段时间了。
我现在已将我的数据库移至 Azure PostgreSQL。我已成功重新配置我的查询/连接以将数据拉入电子表格(通过在“ODBC 数据源 64 位”中设置 DSN)并将 SSL 设置为要求。
工作簿包含一些用于将数据写回数据库的 vba。我收到错误:
运行时错误:'-2147467259 (80004005)':致命:SSL 连接是 必需的。请指定 SSL 选项并重试。
dbConnPublic.Open sqlConnString 行引发错误
代码的相关部分如下所示:
Sub WriteRowToDB()
' Define connectivity
Dim dbConnPublic As New ADODB.Connection
Dim sqlConnString As String
sqlConnString = OpenConnection()
dbConnPublic.Open sqlConnString
End Sub
Public Function OpenConnection() As String
'Define connection objects and terms
Dim sqlConnString As String
Dim myDriver As String: myDriver = "{PostgreSQL ANSI(x64)}"
Dim myServer As String: myServer = "djm-main-01.postgres.database.azure.com"
Dim myDatabase As String: myDatabase = "postgres"
Dim myUserName As String: myUserName = "djmmain01admin@djm-main-01"
Dim myPassword As String: myPassword = "[my password]" ' this replaced by the real password
' Open connection
sqlConnString = "Driver={PostgreSQL ANSI(x64)};" & _
"DSN=postgres;" & _
"Server=" & myServer & ";" & _
"Port=5432;" & _
"UID=" & myUserName & ";" & _
"PWD=" & myPassword & ";" & _
"Database=" & myDatabase & ";" & _
"ssl=true;READONLY=0;PROTOCOL=6.4;FAKEOIDINDEX=0;SHOWOIDCOLUMN=0;ROWVERSIONING=0;SHOWSYSTEMTABLES=1"
OpenConnection = sqlConnString
End Function
我已经尝试了 ssl=true、ssl=required、sslmode=required 的所有组合,使用两个参数和三个参数,一些带有大写字母,一些小写字母,一些混合。找不到任何有影响的东西。也不确定此语法是 Azure、PostgreSQL 还是 ADODB。
请注意,我还可以使用 DBeaver 和 Windows 的命令行 psql(使用 SSL)成功连接到 Azure db。
【问题讨论】:
标签: vba postgresql azure ssl adodb