libpq simple SELECT
| От | Igor Korot |
|---|---|
| Тема | libpq simple SELECT |
| Дата | |
| Msg-id | CA+FnnTzP_9Mh9S7NJL5WFJmbOi2wxw4g=MdoUo-SuXEp3Fyg-g@mail.gmail.com обсуждение исходный текст |
| Ответы |
Re: libpq simple SELECT
|
| Список | pgsql-general |
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.
В списке pgsql-general по дате отправления: