After long time, I have dedicated some time to work on improving ZMSQL.
Link for download:
https://matasoft.hr/pl_ZMSQL_v7.6.2.7z(I hope it will be updated in CodeTyphon and Lazarus CCR, but for now you can download CodeTyphon version here)
I have done many changes, of which most important are:
*ZMQueryDataset is now descendant of TRxMemoryData by defualt, but you can always switch back to TBufDataset, by compiler directive.
Reason for this decision is because TBufDataset cannot load data from large csv files.
*ZMBufDataset removed from package.
*Removed dependency on TSdfDataset. TCSVdataset is now used for importing data from CSV files.
*When importing data from CSV files, via TCSVDataset, FieldDef.Size and Field.Size properties are now determined by inspecting actual values through all rows.
Rason for this is to decrease memory consumption for loading large csv files.
Note that TCSVDataset does setup Size property always to Size=255, which is not optimal...
*CopyFromDataset is renamed to CopyFromADataset, in order not to hide CopyFromDataset coming from TBuFDataset
*Added function DetermineSeparator(AFileName: String; var HasFieldNames: Boolean): Char; to be used for automatic determination of field delimiter in a csv file.
*Resolved bug that was preventing multiple consecutive loading of different csv files.
*Addded procedure GetFieldsListFromCSVFile(List: TStrings); This is fast method to determine field names in the csv file registered as TableName.
Corresponding change made in unit vsb_Zmsql, in order for TZMQueryBuilder can load field information fast.
*Added procedure CopyDataFromDataset(DataSet: TDataSet);
*Various other minor changes and bugfixes