From 20ba716c1f9a81d218c51fe3434de83971ce1b75 Mon Sep 17 00:00:00 2001 From: Jon Evans Date: Fri, 19 Aug 2022 16:07:44 -0400 Subject: [PATCH] Patch nanodbc for postgres support --- thirdparty/nanodbc/nanodbc/nanodbc.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/thirdparty/nanodbc/nanodbc/nanodbc.cpp b/thirdparty/nanodbc/nanodbc/nanodbc.cpp index fb85598a40..5cc0d0b0e1 100644 --- a/thirdparty/nanodbc/nanodbc/nanodbc.cpp +++ b/thirdparty/nanodbc/nanodbc/nanodbc.cpp @@ -995,6 +995,15 @@ public: if (!success(rc) && (event_handle == nullptr || rc != SQL_STILL_EXECUTING)) NANODBC_THROW_DATABASE_ERROR(dbc_, SQL_HANDLE_DBC); + int cursorType = SQL_CURSOR_KEYSET_DRIVEN; + NANODBC_CALL_RC( + SQLSetConnectAttr, + rc, + dbc_, + SQL_ATTR_CURSOR_TYPE, + (SQLPOINTER)(std::intptr_t)cursorType, + 0); + connected_ = success(rc); return rc; @@ -1045,6 +1054,15 @@ public: if (!success(rc) && (event_handle == nullptr || rc != SQL_STILL_EXECUTING)) NANODBC_THROW_DATABASE_ERROR(dbc_, SQL_HANDLE_DBC); + int cursorType = SQL_CURSOR_KEYSET_DRIVEN; + NANODBC_CALL_RC( + SQLSetConnectAttr, + rc, + dbc_, + SQL_ATTR_CURSOR_TYPE, + (SQLPOINTER)(std::intptr_t)cursorType, + 0); + connected_ = success(rc); return rc;