Вопрос в следующем:
Есть 2 варанта доступа к таблице в Firebird:
1. Plugin с использованием TableView, QSqlQuery и QSqlQueyModel - от нажатия меню до появления данных.
2. Скрипт написанный с использованием объектов созданных QtScriptGenerator:
ViewGoods.js:
importExtension('dbworks');
var viewgoods = global.loadUI("modules/viewgoods.ui","ViewGoods",true);
try {
viewgoods.show();
var tableModel = new QSqlQueryModel(viewgoods)
var query= dbworks.execSql("select * from viewgoods rows 10",true)
tableModel.setQuery(query);
viewgoods.tableView.setModel(tableModel);
} catch(e) { print(e) }
dbworks.js:
dbworks.execSql = function(query,ldb) {
var db = QSqlDatabase.database('qt_sql_default_connection');
var q = db.exec(query);
if(ldb) {
print(q);
return q;
} else
return q;
}
1-й вариант запускаэтся около 4-х секунд (от нажатия кнопки меню)
2-й вариант - 8-10секунд
в 1-м варианте - при перемещении по таблице само перебежение меньше секунды (момент от нажатия кнопки в низ и до перемещения выделения)
2-й вариант 1-2 секунды!!!!!!!!
П.С. Все необходимые расширения грузятся через importExtension ДО появления главной формы и уже находятся в памяти до вызова пунктов меню.
П.П.С. После многократного нажатия на пункт меню (для проверки кеширования данных) результат для плагина - 2-3сек., для скрипта - без изменений.
Ну и собсно сам вопрос. Как это (скрипт) ускорить? до приемлемых временных интервалов?