Re: Postgresql and VBA - Connection Timeout

From: Wayne Mell <wmell(at)hotmail(dot)com>
To: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>, "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>, "pgsql-odbc(at)lists(dot)postgresql(dot)org" <pgsql-odbc(at)lists(dot)postgresql(dot)org>
Subject: Re: Postgresql and VBA - Connection Timeout
Date: 2019-07-12 15:05:24
Message-ID: MN2PR11MB4208BD4115201F36656E4158B0F20@MN2PR11MB4208.namprd11.prod.outlook.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-odbc

Thank you Adrian,

The link you sent had an answer that worked.

I had to edit the psqlodbc35w.dll file and change SET statement_timeout = %d to SET statement_timeout = 0 .

Somewhere in the thread, Hiroshi Inoue mentioned that a SQL_QUERY_TIMEOUT statement was built into the driver starting with version 9.5 of the driver, but all of my attempts to find documentation on how to use this feature in VBA have failed.

It certainly would be a better way to handle this. Can anyone point me at some documentation? I've copied this to the ODBC list as well.

Thanks everyone who replied.

Wayne

________________________________
From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
Sent: Thursday, July 11, 2019 3:21 PM
To: Wayne Mell; pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Postgresql and VBA - Connection Timeout

On 7/11/19 1:04 PM, 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
>
> 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.

https://www.postgresql-archive.org/BUG-odbc-statement-timeout-gets-set-to-30000-td5992591.html

>
>

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ibrahim Edib Kokdemir 2019-07-12 15:21:42 FATAL: invalid page in block 0 of relation global/1262
Previous Message Laurenz Albe 2019-07-12 14:47:19 Re: Issue: Creating Symlink for data directory of postgresql in CentOS7

Browse pgsql-odbc by date

  From Date Subject
Next Message Inoue, Hiroshi 2019-07-13 00:53:12 Re: Postgresql and VBA - Connection Timeout
Previous Message Adrian Klaver 2019-07-11 20:30:19 Re: Postgresql and VBA - Connection Timeout