Platform: Lazarus 1.8.2, FPC 3.0.4, IBX 2.3.0
Questions about IBX:
- When a TIBTransaction is opened, is it locking other users out of selecting, or updating the records it's connected TIBQuery and TIBDatasets have pulled back from the database using their SQL statements?
- If so, doesn't this use up lock resources on the Firebird server for each user that has an open transaction, which are apparently limited, meaning that if enough users simply query the database, it could crash, even if no user is doing an update?
This means that TIBTransactions are stateful, and there is a definite limit to how many users can be connected to the database at any given time.
The best way for client server setups to work is stateless. Where thousands of users can query the DB and get the little record subset they need, make any changes to a single record, then update the database with those changes.
Is there a stateless way to use TIBX components directly, or must I use TIBX components to query the back end database, then programmatically transfer all the field data to a TBufDataSet, then do the reverse for updates?
Is there a way to "connect" a TBufDataSet to the database so it can receive the results of a query and not involve having an open transaction waiting for the user to make changes, then update?