Greetings,
Anticipating "next projects", now is a good time to look into using different tools than MS Access.
I really researched how to use Access as best as possible in a Client/Server environment. I am hoping what I came up with for Access may be translated to the next tool I select.
I picked up the design point that in Lazarus, widget sets are double class wrapped. Similarly, I double class wrapped database access.
Form UI <---> Validation Class <---> DB Class <---> SQL DB
The DB Classes exist one per logical table collection. For example, for this ERP application there is a parts list. Several look-up tables support the parts list capability. I rolled all of that into a Parts DB Class. Yes, those individual pick lists had their own editor DB classes, however pick lists are read only when out in the main application interface dealing with the parts table. So this DB Class for the Parts table knows how to Insert / Update / SelectByID / SelectByPN and so on. As much as possible I utilized ADO.Command / ADO.Parameter objects for my calls to the SQL DB. All table columns are exposed as properties of the DB Class object.
The Validation Class performs mapping between the DB Class object and the Form UI controls. It also performs data validation. If invalid data is found on the form, the field is marked in red background and an error box popped.
1) Is such possible to achieve with the Lazarus live data access controls?
2) Suspecting it is not, just how many things am I looking at fabricating on my own instead of relying on the live data access controls? Like, obviously I am not setting out to develop my own set of UI controls. So where would the line be between using stock Lazarus components and me having to develop my own code from scratch.
3) Since Lazarus is not a desktop database product, I suspect I need some sort of in-memory table to collect records resulting from a SELECT Stored Procedure so that the data could be displayed on a form. Correct? What solution would be suggested for this? (I am thinking for a SP returning multiple rows, and that is to be displayed in a read-only grid control UI.)
4) Oh, and I seem to recall several DB components from last time I looked at Lazarus. Could someone suggest which type to consider first that has syntax similar to ADO.Command / ADO.Parameter objects as far as encapsulating the data separate from the SQL. (Prepared SQL statements) At least in the Access / VBA camp, it was very common to see people issuing bare SQL with the data mixed into the SQL.
Thank you.