Problems with the DATABASE IO process in AC GDL.
The first problem is related to the fact that the path of the DATABASE is only relative to the AC Add-On folder. This will make the database IO in a GDL object not portable between platforms if the users don't have the same object storage system. This can be solved by enabling the "Dialog" flag in the OPEN command. But this would require the user to choose all the database files during their first installation. It would be fine if it is just for one or two database IO, but as the scale of project and the complexity of networking goes up, this method doesn't make sense. In the worst case, when the system ask you to find thirty databases and you have accidentally pressed one wrong, then the system would be messed up. Anyway, why would a novice AC user using my GDL tool need to know what does "Database" mean? Is it possible to add a global parameter that will store the path of the current object in the file system so that I could create database folder relative to this path?
The second problem is about the IO property of the database accessing function in GDL.
For database input in the current version of AC GDL, I can only access an item by quoting the exact name of the record and the field number. This is a useful method to access database. However, in some cases, it is the number index of the record in the database that matter. For example, if I am synchronizing sets of database, I just want to match the nth field in a database with the nth field of the other one. I don't really know the name of the database. Is it possible to make the function being able to access an item by just referring the record number and field number? Also, it would be more organized to associate the field number with a proper field name. (Well, it is just a thought)
For database output, the only functions provided in current AC GDL is to clear an existing record or to add a new record. If I want to modify a record like editing a field or adding a field, I have to copy the whole record to an array, make some change, delete the original record and put the array back as a new record. This is kind of clumsy and can indeed slow down the IO process tremendously. I have been working on some large-scale projects and the IO process can take six minutes each time I need to update something. Is it possible to make more flag in the OPEN command to edit the database files?