Hi,
Situation:
The client program queries a dataset from the PG server, and it displays it, say, in a table. The user can navigate and update fields, insert new records, delete records. And any change should be visible on all clients.
I think I have basically 2 choices:
1 : using SELECT and download the whole dataset with pg_exec()
2 : using cursors (pg_exec(..,'DECLARE ... '))
In the 1st case after each update,insert delete of the user I should run the query again to see the changes on this client ? This can be slow if the table is large.
The behaviour of the 2nd case is not so trivial for me. I know that this will be faster for large tables, but I don't know if the change I perform will be visible for this user after a simple refetch without opening another cursor. DECLARE and CLOSE should be enclosed in a transaction, and with SAVEPOINTs I think I can commit the user's operations before closing the cursor.
Please help,
Otto