Прошу пожалуйста подтвердить, что это ошибка или что это корректное поведение Квика:
Заказываю данные через CreateDataSource:SetUpdateCallback():
Запускаю Квик:
-Загружаю скрипт.
-Запускаю скрипт.
-Скрипт вызывает CreateDataSource.
-CreateDataSource возвращает нулевую таблицу, что говорит о том, что данные придут позже в колбек.
-Колбек больше НИКОГДА не вызывается ... проверка размера таблицы в цикле - так же не дает результата, а точнее размер таблицы всегда нулевой - хоть крути цикл минуту, хоть 10 минут.
Выгружаю Скрипт и СРАЗУ же его запускаю - данные сразу же начинают приходить.
Вот простейший скрипт подтверждающий это поведение:
Версия Квика 9.7.1.10
Заказываю данные через CreateDataSource:SetUpdateCallback():
Запускаю Квик:
-Загружаю скрипт.
-Запускаю скрипт.
-Скрипт вызывает CreateDataSource.
-CreateDataSource возвращает нулевую таблицу, что говорит о том, что данные придут позже в колбек.
-Колбек больше НИКОГДА не вызывается ... проверка размера таблицы в цикле - так же не дает результата, а точнее размер таблицы всегда нулевой - хоть крути цикл минуту, хоть 10 минут.
Выгружаю Скрипт и СРАЗУ же его запускаю - данные сразу же начинают приходить.
Вот простейший скрипт подтверждающий это поведение:
Версия Квика 9.7.1.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) |