Hello,
a long time I looked for a more automatic handling of database driven application like binding views to a record and more. I searched the forum but did not found any answer. Why? The answer is my question was wrong! The good information I found an other member of the forum who lead me to the Observable library from Informatix, Thank you for this.
This is a very excellent work from Informatix and it does exactly what I am searching for. The only problem left is the small documentation and the situation that the published demo projects from Informatix only good for a situation when working with a static database. They include only retriving values from it and updating existing records. Other important functionalty like insert or deleting of records are missing.
In the forums post about the library from 2018 there are some request of members to have a more complete demo.
To get this I invested a full working day of examin the demo code and modifying it. And after playing around with trial and error (I hate this) I think I found a possible working solution.
Please find attached my modification of Informatix Demo Project #1 that covers:
My modification has to change the published handling of iterating from using the oRowID to using a resultset cursor because if you delete a record the rowid is lost and therefore you can not call the records by only increasing or decreasing the rowid number.
It is also neccessary to update the result set because it is not directly connected to the database. If you insert or delete a record the database content is changed but not the resultset. To solve this the resultset has to be refreshed after insert and delete.
At least after deleting and inserting the binding IDs of the views must be updated to the new rowid (insert) or the next/previous row id (delete) and I found that after using InitializeWithNewRecord the WHERE condition information is lost and must be refreshed.
Again thank you to Informatix for his great work. If you read this you may inspect my code, comments and or proposals are highly welcome.
If you like to have the basic information or to get the library goto: Observable | B4X Programming Forum .
a long time I looked for a more automatic handling of database driven application like binding views to a record and more. I searched the forum but did not found any answer. Why? The answer is my question was wrong! The good information I found an other member of the forum who lead me to the Observable library from Informatix, Thank you for this.
This is a very excellent work from Informatix and it does exactly what I am searching for. The only problem left is the small documentation and the situation that the published demo projects from Informatix only good for a situation when working with a static database. They include only retriving values from it and updating existing records. Other important functionalty like insert or deleting of records are missing.
In the forums post about the library from 2018 there are some request of members to have a more complete demo.
To get this I invested a full working day of examin the demo code and modifying it. And after playing around with trial and error (I hate this) I think I found a possible working solution.
Please find attached my modification of Informatix Demo Project #1 that covers:
- Iterating through the records with navigation buttons first/previous/next/last.
- Updating existing records.
- Adding new records.
- Deleting records,
- Show Position information.
My modification has to change the published handling of iterating from using the oRowID to using a resultset cursor because if you delete a record the rowid is lost and therefore you can not call the records by only increasing or decreasing the rowid number.
It is also neccessary to update the result set because it is not directly connected to the database. If you insert or delete a record the database content is changed but not the resultset. To solve this the resultset has to be refreshed after insert and delete.
At least after deleting and inserting the binding IDs of the views must be updated to the new rowid (insert) or the next/previous row id (delete) and I found that after using InitializeWithNewRecord the WHERE condition information is lost and must be refreshed.
Again thank you to Informatix for his great work. If you read this you may inspect my code, comments and or proposals are highly welcome.
If you like to have the basic information or to get the library goto: Observable | B4X Programming Forum .