Обсуждение: Asynchronous queries with callbacks.

Поиск
Список
Период
Сортировка

Asynchronous queries with callbacks.

От
Вячеслав Блинников
Дата:
Hello!
I connect to PostgreSQL database in my C++ program via libpq and I need to implement the function like "void SendQuery(char* queryString, void (*callback)(void*))" which will .
But how to bind the callback function data (and some parameters) to database request?
I intended to put queries into queue (along with callback and param data) and after fetching each result via "PQgetResult()" obtain callback and param from the queue, but documentation says that "PQexec can return only one PGresult structure. If the submitted query string contains multiple SQL commands, all but the last PGresult are discarded by PQexec." so it is impossible to organize a queries queue because some queries will return more than one results and it will shift the "callbacks and params" queue.
Is it possible to implement? Or there is only one way - send queries one-by-one?

Re: Asynchronous queries with callbacks.

От
Peter Geoghegan
Дата:
2011/1/5 Вячеслав Блинников <slavmfm@gmail.com>:
> I intended to put queries into queue (along with callback and param data)
> and after fetching each result via "PQgetResult()" obtain callback and param
> from the queue, but documentation says that "PQexec can return only one
> PGresult structure. If the submitted query string contains multiple SQL
> commands, all but the last PGresult are discarded by PQexec." so it is
> impossible to organize a queries queue because some queries will return more
> than one results and it will shift the "callbacks and params" queue.
> Is it possible to implement? Or there is only one way - send queries
> one-by-one?

I suggest you take a look at libpqxx's pipeline class.


--
Regards,
Peter Geoghegan