Re: PGAPI_SetPos - Mailing list pgsql-odbc

From tomas@nocrew.org (Tomas Skäre)
Subject Re: PGAPI_SetPos
Date
Msg-id 80ptfuvky6.fsf@junk.nocrew.org
Whole thread Raw
In response to PGAPI_SetPos  (Peter Eltgroth <peter@accutelligence.com>)
List pgsql-odbc
Peter Eltgroth <peter@accutelligence.com> writes:

> Hello,
>
> We are attempting to use an ETL tool (Monarch Data Pump) to move data from
> various sources into PostgreSQL; however, we are recieving the following error
> message when we attempt to Load the data:
>
> [1500][SQLSetPos][1500]PGAPI_SetPos fOption=4 irow=1 lock=0 currt=0
> [1500]STATEMENT ERROR: func=PGAPI_SetPos, desc='', errnum=10, errmsg='Only
> SQL_POSITION/REFRESH is supported for PGAPI_SetPos'
> [1500]CONN ERROR: func=PGAPI_SetPos, desc='', errnum=0, errmsg='(NULL)'
> [1500][[SQLGetDiagRec]]
>
> We tried several recent ODBC drivers (versions 7.03.02.03, 7.03.02, and
> 7.03.01), and made sure to check "Updateable Cursors".

I think you have to set the concurrency attribute to ROWVER on the
statement, before you can use others than POSITION and REFRESH with
SetPos. You do this with this call:

SQLSetStmtAttr(hstmt, SQL_ATTR_CONCURRENCY,
               (SQLPOINTER)SQL_CONCUR_ROWVER, 0);


Maybe you also need to set the cursor type to keyset driven. I do that
at least.

SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
               (SQLPOINTER)SQL_CURSOR_KEYSET_DRIVEN, 0);


Good luck,

Tomas

pgsql-odbc by date:

Previous
From: Peter Eltgroth
Date:
Subject: PGAPI_SetPos
Next
From: Shachar Shemesh
Date:
Subject: Extreme slowness