function ExecSQL(SQL)
{
var db = db_connection_string();
var ab = SQLXExecSQL(db, SQL, "ArrayBuffer", function(ab)
{
var ds = new Dataset;
ds.openFromArrayBuffer(ab);
LoadDatasetToGrid(ds, w2ui["x-w2ui-sql-grid"]);
__delete__(ds);
});
}
function LoadDatasetToGrid(ds, grid)
{
// Reset grid
var columns = [];
var records = [];
columns.push({
field: "recid",
hidden: true
});
// Create grid coluns from dataset fields
for (var i = 0; i < ds.fieldCount; i++)
{
var f = ds.fieldByIndex(i);
var id = f.ID.replace(/[\W\s]/g, "_");
columns.push({
caption: f.NAME,
field: id,
size: "100px",
});
}
// Create grid records from dataset records
ds.moveFirst();
var r = 0;
while (!ds.DB_EOF)
{
var record = { recid: ++r };
for (var i = 0; i < ds.fieldCount; i++)
{
var f = ds.fieldByIndex(i);
var id = f.ID.replace(/[\W\s]/g, "_");
record[id] = f.value;
}
records.push(record);
ds.moveNext();
}
grid.clear();
grid.columns = columns;
grid.records = records;
grid.refresh();
}