Прошу пожалуйста подтвердить, что это ошибка или что это корректное поведение Квика:
Заказываю данные через CreateDataSource:SetUpdateCallback():
Запускаю Квик:
-Загружаю скрипт.
-Запускаю скрипт.
-Скрипт вызывает CreateDataSource.
-CreateDataSource возвращает нулевую таблицу, что говорит о том, что данные придут позже в колбек.
-Колбек больше НИКОГДА не вызывается ... проверка размера таблицы в цикле - так же не дает результата, а точнее размер таблицы всегда нулевой - хоть крути цикл минуту, хоть 10 минут.
Выгружаю Скрипт и СРАЗУ же его запускаю - данные сразу же начинают приходить.
Вот простейший скрипт подтверждающий это поведение:
Версия Квика 9.7.1.10
Заказываю данные через CreateDataSource:SetUpdateCallback():
Запускаю Квик:
-Загружаю скрипт.
-Запускаю скрипт.
-Скрипт вызывает CreateDataSource.
-CreateDataSource возвращает нулевую таблицу, что говорит о том, что данные придут позже в колбек.
-Колбек больше НИКОГДА не вызывается ... проверка размера таблицы в цикле - так же не дает результата, а точнее размер таблицы всегда нулевой - хоть крути цикл минуту, хоть 10 минут.
Выгружаю Скрипт и СРАЗУ же его запускаю - данные сразу же начинают приходить.
Вот простейший скрипт подтверждающий это поведение:
Код |
---|
function my_callback_CreateDataSource(my_table_data_, code_class_, code_paper_) message(code_paper_) //В первый запуск скрипта - НИКОГДА не вызывается. end -----------------------------------------------------------------------------------------------------------int main:----------------------------------------------------------------------------------------------------- function main() local code_class1 = "TQBR" local code_paper1 = "GAZP" local interval1 = INTERVAL_TICK local code_class2 = "TQBR" local code_paper2 = "SBER" local interval2 = INTERVAL_TICK ----------------------------------------------------------------------Вызов CreateDataSource_1------------------------------------------------------------------------------ local my_table1, error_desc1 = CreateDataSource(code_class1, code_paper1, interval1) --Вызываем собственно CreateDataSource ------------------------Проверка на ошибки:------------------- if error_desc1 ~= nil then message("Error") end -------------------------------------------------------------- message(tostring(my_table1.Size())) //В первый запуск скрипта - размер табилцы ВСЕГДА нулевой - сколько бы времени не ожидал. if my_table1.Size() == 0 then message("data requested from the server") end ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------Вызов CreateDataSource_2------------------------------------------------------------------------------ local my_table2, error_desc2 = CreateDataSource(code_class2, code_paper2, interval2) --Вызываем собсвенно CreateDataSource ------------------------Проверка на ошибки:------------------- if error_desc2 ~= nil then message("Error") end -------------------------------------------------------------- message(tostring(my_table2.Size())) //В первый запуск скрипта - размер табилцы ВСЕГДА нулевой - сколько бы времени не ожидал. if my_table2.Size() == 0 then message("data requested from the server") end ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- my_table1:SetUpdateCallback(function(idx)my_callback_CreateDataSource(my_table_data1, code_class1, code_paper1) end) my_table2:SetUpdateCallback(function(idx)my_callback_CreateDataSource(my_table_data2, code_class2, code_paper2) end) |