Using a unicode version of delphi (xe2 / xe3) and NexusDB ([url removed, login to view]) I need clear, elegant, bulletproof and commented code written as an application template for a general database software.
It should contain code to select either local (app internal) or remote database server, gracefully report no connection, missing aliases or tables and offer the user to configure correctly or create new tables. It should handle connection losses gracefully (reconnect / retry w/o losing data), compare the application's table dictionary to the actual physical table dictionary and restructure tables (update table structure) automatically if needed w/o losing data. Database tables backup and restore code and forms using nexusdb backupcontroller and zipping or other compression of the backup files to save space should be provided. It should also include an encrypted user table with user authentication and permissions data together with a login form.
Furthermore the template should contain a 'default' table browse form with a dbgrid, dbnavigator (capable of deleting M/D connected records) and code to select available indices and set filter(s). Forms and code for adding or editing both singlerecord and master-detail-detail scenarios *without* locking records or tables if a user has opened M/D records for editing but goes for a coffee break. If another user opens the same record and saves it in the meantime, the first user should be warned about that when he tries to save (the original records have changed). I suggest that this functionality together with many of the database features are provided as components to put on forms or datamodules.
The above code should be included and put to work in an application template which can be use as point of departure for the project owner future database applications.
To proove that everything works smoothly I suggest that the above app template is used to create a simple invoicing application with customers, items, invoices, invoice lines and settings tables. It should provide database connction (local or remote), year selection (based on table filename), and user authentication. If tables don't exist, it should offer to create the missing tables and set their default data. Compressed backup and restore of the database should be provided. The table 'browser' form should include a tabbed notebook with dbgrids for invoices, items and customers, and if a customer opens an invoice for editing and doesn't save it before another user saves his change for the same (master or detail) record(s), both these users should be warned about the situation. I will provide field names for these tables together with other details to the winning bidder.
NexesDB is available as a trial version so the bidder doesn't have to purchase it in order to complete the project.
I'm unsure about price range, but I am willing to go above $750 if I'm convinced that I get the code quality I really want.