Thanks, Roger for everything!
I'll tailor Your solution to my conditions. It's working. Of course, this will require further development in other modes of the system. But worth it. Sometimes I have some questions.
For example, in the DC_TxtLine () command in Your example, there is a 3rd parameter = 100000. I looked in the description of this function is only 2 parameters. Intuitively, it seems to me that this is something like the maximum number of characters in the line being read. Could you clarify the meaning of this parameter.
Code: Select all
cLine := DC_TxtLine(nHandle,Chr(10),100000)
Also, Roger, I'd like to say that your decision is based on an extraordinary thought (supremely outstanding idea). This idea deserves to be implemented at the level of a programming language or libraries. Imagine that in Express there is a command like:
Code: Select all
USE NameDBF EXLUSIVE NEW MULTITABLE
You can create such a multi-table using the following commands:
Code: Select all
aStru := { TRAIN1->(dbStruct()), TRAIN2->(dbStruct(), TRAIN3->(dbStruct()), TRAIN4->(dbStruct(), TRAIN5->(dbStruct)) }
dbCreate(NameDBF ,aStru,'MULTITABLE')
And you can access such a multi-table using your function and just commands to access normal tables, including indexes, filters, and everything else. I think it would be very cool. In such a multi-table there would be no limit to the number of fields and the file size of the multi-table itself could not be limited to 2 GB at all. A multi-table is a special case of a regular table. So if the teams work with the usual table, add the option "MULTITABL" in her work, nothing will change. Determine the name of the table and the number of the field in it by the number of the field in the multi-table and refer to this field.