Hi, ALL,
On the page https://www.postgresql.org/docs/current/libpq-example.html
in the first program there is a following comment:
[code]
/*
* Our test case here involves using a cursor, for which we must be inside
* a transaction block. We could do the whole thing with a single
* PQexec() of "select * from pg_database", but that's too trivial to make
* a good example.
*/
[/code]
I just tried the following code:
[code]
std::wstring query1 = L"SELECT t.table_catalog AS catalog,
t.table_schema AS schema, t.table_name AS table, u.usename AS owner,
c.oid AS table_id FROM information_schema.tables t,
pg_catalog.pg_class c, pg_catalog.pg_user u WHERE t.table_name =
c.relname AND c.relowner = usesysid AND (t.table_type = 'BASE TABLE'
OR t.table_type = 'VIEW' OR t.table_type = 'LOCAL TEMPORARY') ORDER BY
table_name;";
res = PQexec( m_db, m_pimpl->m_myconv.to_bytes( query1.c_str()
).c_str() );
for( int i = 0; i < PQntuples( res ); i++ )
{
some code handling the results
}
[/code]
The loop is executed exactly 1 time.
My question is - according to the comment above I don't have to use cursor,
but it looks like it's unavoidable?
Thank you.