I use the record structure to map to a table and store/retrieve the data.
type
TViewsRecord = record
Category : string;
date : string;
end;
function JSON2TViewsRecord(const Value: TJSObject): TViewsRecord;
begin
result.Category := string(Value['Category']);
result.date := string(Value['date']);
end;
function TViewsRecord2JSON(const Value: TViewsRecord): TJSObject;
begin
result := TJSObject.New;
result['Category'] := Value.Category;
result['date'] := Value.date;
end;
-----------------
...this definition external class
type
JRec = record
end;
TProcColumnNameParams = procedure(columnName: @record);Of course this not work, I want to write a function and allow the user of the function to pass a record
that I do not know in advance.
Then, the idea is to show the columnNames (code autocompletion) of an unknown DB table.
How to pass an unknown record to a function as argument?
(...)
procedure each(sql: String; callback: TProcColumnNameParams; doneProc:
TProcColumnName); overload;
--------------Something like to use this:
localDB.each('SELECT date FROM views ORDER BY date ASC',
procedure(columnName: TViewsRecord)
begin
console.log(columnName.Category);
console.log(columnName.date);
end,
procedure()
begin
console.log('done');
end);and so on... // without overloading the external class definition
localDB.each('SELECT * FROM album', procedure(columnName: TAlbumRecord)
begin
console.log(columnName.Nome);
console.log(columnName.CPF);
end,
procedure()
begin
end);