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.


Reply via email to