XDSAutoDatabase - Eliminate Writing Database Code!

XDSAutoDatabase simplifies the development of SQLite database applications by writing all the code for the database manipulation at run-time. A developer can use the Xojo IDE to design the layout of their application by placing the controls on a “parent container” such as a canvas or any other RectControl/Control, thereby creating a database “form”. By associating the “parent container” control with an instance of the XDSAutoDatabase, the class knows what tables and columns will need to be create or used, and will even create the database if it doesn’t exist. Saving a single form/record is great, but what about complex database applications where other records are related to another record? No problem! XDSAutoDatabase can relate records to one another, and allows developers to implement more complex data manipulation should it be needed (ie Calculations based on input or output, before saving or after retrieving from the database). Need to add another control (ie TextField)? Just drop it on the “parent container” and don’t add another line of code! the XDSAutoDatabase will alter the database table automatically to add any additional columns or associations. Find that you no longer need a particular field/control? Remove it from the “parent control”/form and no code changes are needed! Imagine developing a full CRM application in less than a day or creating a To-Do, Recipe, or Library application in an hour or less!

Try it out! See the demos and examples to get started!

Demos:

More advanced demos and documentation to come! The class is almost ready for WebEdition, which is included in all XDSAutoDatabase commercial licenses and will be made available to developers soon. We will be adding other database connections such as MySQL and PostgreSQL. The class currently supports SQLite.

Newly Released:
Visit the XDS Store to obtain the Encrypted ($25) or UnEncrypted ($75) commercial version for use in stand-alone executable applications. The demo version of the class is fully operational, but may only be used in the Xojo IDE/Debug Builds. All licenses include lifetime updates to the class including both Desktop and WebEdition.

*As always, developer suggestions and requests for feature add-ons are encouraged!

Has been updated to include MySQL & PostgreSQL with new features and more to come :slight_smile: - Happy Coding!

The latest update has been issued. See https://www.facebook.com/XojoDevelopersSpot/posts/1848560311856111

Version 1.31 is now available.

License holders may obtain the latest copy from within their XDS account at

Version 1.4 will support grouping of forms for a single record, as well as a number of feature requests that have been requested by developers! Stay Tuned!

I have taken a look at this and it seems like a pretty neat tool.

My only concern is I do not think making the view the data model is necessarily ideal. Also what happens when you remove UI elements from the view? What happens to the underlying data that already exists? What if you add a UI element that existed previously or already in the database?

There are a lot of edge cases that need explanation. I can see its productivity benefits in certain scenarios however. Nice job.

When a control is removed from the IDE, the table column remains in tact by default, preventing the user/developer from accidentally deleting data, should they be unknowing or have an “oops” moment. This is also the case with multi-views for different users. In a CRM type application, an admin would be able to see a social security number for instance, so their view could contain a SSN textfield, where a basic office assistant may see everything but the social security number, so their view wouldn’t contain a SSN textfield. Databases that preexist the application can have views designed around them simply by dropping the necessary objects on the form view associated with the returned database informion column name :slight_smile: In the next release, form views will be allowed to be grouped from multiple parent containers; basically seen as one “record-entity”…plus a lot of other cool tricks and features developers have requested :slight_smile: Thanks Phillip! I appreciate the input and request for clarification! If you have any requests or suggestions, as always, I’d love to hear! Definitely check out the new demo release!