On 11/07/2019 3:04 p.m., Wayne Mell
wrote:
Can someone help me with executing a postgres function from
VBA? No matter what function I call, it always times out after
exactly 30 seconds. I've tried to use the statement_timeout a
million different ways and always get an error that states
"Cancelling statement due to statement timeout" in Access.
Here is the code I've been using to test:
Dim cnn As ADODB.Connection
Dim cnnCmd As ADODB.Command
Set cnn = New ADODB.Connection
cnn.ConnectionString = "Driver={PostgreSQL
Unicode(x64)};Server=postgres.office.server;Port=5432;Database=DBS;UID=postgresuser;PWD=postgrespwd;"
cnn.ConnectionTimeout = 0
cnn.Open
Set cnnCmd = New ADODB.Command
cnnCmd.CommandTimeout = 0
I found that the default of 0 meaning no timeout doesn't seem to
work.
What happens if you set cnnCmd.CommandTimeout = 60 for the sleep
test of 50?
George
Set cnnCmd = cnn.Execute("select pg_sleep(50);")
There are other functions that I've tried to execute, and they
all work as long as they take less than 30 seconds to run. I
just started running pg_sleep to test.
If I log into pgAdmin with the same user name and password, and
on the same machine, then the functions will execute no matter
how long they take. It's only through VBA and the psqlODBC
driver that I have the 30 second timeout limit.
Has anyone found a way to make this work? Thanks.
--
Cleartag Software, Inc.
972 McMillan Avenue
Winnipeg, MB
R3M 0V7
(204) 284-9839 phone/cell
(204) 284-9838 fax
gweaver@xxxxxxxxxxxxxxxxxxxx
Fast. Accurate. Easy.