getDepoEx

Страницы: 1
RSS
getDepoEx, Ошибки при выполнении функции
 

Добрый день !

Столкнулся с проблемой при использовании данной функции.

...
y=getDepoEx ("MC0003300000", "555555", "SU26225RMFS1", "L01-00000F00", 2).currentbal
...

Получаю ошибку несуществующего аргумента в момент очистки таблиц при первом за текущие сутки коннекте к серверу 9-30.  Дальше работает корректно, все данные из таблицы лимитов получаются, при переконнекте скрипт не вылетает.

Попробовал посмотреть что она в этот момент возвращает
...
y=type(getDepoEx ("MC0003300000", "555555", "SU26225RMFS1", "L01-00000F00", 2))
...

получил:   bad argument #1 to type (value expected)

Выборки из других таблиц getParamEx, getPortfolioInfoEx работают как и должны круглосуточно.

Возможно это баг разработчиков. Но я не могу придумать как это обойти, кроме как останавливать скрипт на время обновления данных. Подскажите если кого озарит

 
write my essay
write my essay

viagra generic viagra generic
viagra for sale viagra for sale
levitra 20 mg levitra 20 mg
viagra for sale viagra for sale
write my essay write my essay
custom writing custom writing
viagra generic viagra generic
essay writing service essay writing service
viagra without a doctor prescription viagra without a doctor prescription
custom writing
custom writing
 
best essay writing service
essay writing service

viagra generic viagra generic
viagra for sale viagra for sale
levitra 20 mg levitra 20 mg
viagra for sale viagra for sale
write my essay write my essay
custom writing custom writing
viagra generic viagra generic
essay writing service essay writing service
viagra without a doctor prescription viagra without a doctor prescription
custom writing
custom writing
 
write my paper for me
custom writing

viagra generic viagra generic
viagra for sale viagra for sale
levitra 20 mg levitra 20 mg
viagra for sale viagra for sale
write my essay write my essay
custom writing custom writing
viagra generic viagra generic
essay writing service essay writing service
viagra without a doctor prescription viagra without a doctor prescription
paper writing service
write my essay
 
write my essay for me
write my essay for me

viagra generic viagra generic
viagra for sale viagra for sale
levitra 20 mg levitra 20 mg
viagra for sale viagra for sale
write my essay write my essay
custom writing custom writing
viagra generic viagra generic
essay writing service essay writing service
viagra without a doctor prescription viagra without a doctor prescription
paper writing service
essay writing service
 
Цитата
Kolossi написал:
Возможно это баг разработчиков. Но я не могу придумать как это обойти, кроме как останавливать скрипт на время обновления данных. Подскажите если кого озарит
Почему именно баг? Вы же сами сказали что данных нет. А раз данных нет то и возвращать естественно нечего.
И даже в документации про это сказано:
Цитата
В случае ошибки функция возвращает «nil».
остается только добавить проверку на nil
 
Цитата
Kolossi написал:
Добрый день !  Столкнулся с проблемой при использовании данной функции.   ...
y=getDepoEx ("MC0003300000", "555555", "SU26225RMFS1", "L01-00000F00", 2).currentbal

Добрый день!

Вы любите рисковать))
В lua, как в динамически типизированном языке, стоит всегда добавлять проверки на null, а потом уже доставать из переменной значения, как из таблицы:
Код
local depo = getDepoEx ("MC0003300000", "555555", "SU26225RMFS1", "L01-00000F00", 2)
local currentbal = depo and depo.currentbal 
                         or 0 -- например
 
Цитата
Sergey Gorokhov написал:
Цитата
Kolossi написал:
Возможно это баг разработчиков. Но я не могу придумать как это обойти, кроме как останавливать скрипт на время обновления данных. Подскажите если кого озарит
Почему именно баг? Вы же сами сказали что данных нет. А раз данных нет то и возвращать естественно нечего.
И даже в документации про это сказано:
Цитата
В случае ошибки функция возвращает «nil».
остается только добавить проверку на nil
Если бы она возвращала nil, я бы сюда не обращался. Скрипт останавливается с ошибкой : attempt to index a nil value
 
Цитата
vgi написал:
Цитата
Kolossi написал:
Добрый день !  Столкнулся с проблемой при использовании данной функции.   ...
y=getDepoEx ("MC0003300000", "555555", "SU26225RMFS1", "L01-00000F00", 2).currentbal

Добрый день!

Вы любите рисковать))
В lua, как в динамически типизированном языке, стоит всегда добавлять проверки на null, а потом уже доставать из переменной значения, как из таблицы:
Код
   local  depo  =   getDepo Ex ( "MC0003300000" ,  "555555" ,  "SU26225RMFS1" ,  "L01-00000F00" ,  2 )
 local  currentbal  =  depo  and  depo.currentbal 
                          or   0   -- например   

Пробовал, сама первая строка, которую вы предлагаете вышибает скрипт.  Повторюсь только в момент подключения к серверу в первый раз за сутки, когда очищаются данные на сервере (как прописано в настройках Квика). Дальше в течении дня все работает корректно.
 
Цитата
Kolossi написал:
Цитата
vgi написал:
 
Цитата
Kolossi  написал:
Добрый день !  Столкнулся с проблемой при использовании данной функции.   ...
y=getDepoEx ("MC0003300000", "555555", "SU26225RMFS1", "L01-00000F00", 2).currentbal
 
Добрый день!

Вы любите рисковать))
В lua, как в динамически типизированном языке, стоит всегда добавлять проверки на null, а потом уже доставать из переменной значения, как из таблицы:
 
Код
      local   depo   =     getDepo  Ex (  "MC0003300000"  ,  " 555555 " ,  "SU26225RMFS1" ,  "L01 - 00000F00" ,   2  )
  local   currentbal   =   depo   and   depo.currentbal 
                           or     0     -- например      
 

Пробовал, сама первая строка, которую вы предлагаете вышибает скрипт.  Повторюсь, только в момент подключения к серверу в первый раз за сутки, когда очищаются данные на сервере (как прописано в настройках Квика). Дальше в течении дня все работает корректно.
 
Цитата
Kolossi написал:
Цитата
vgi написал:
 
Цитата
Kolossi  написал:
Добрый день !  Столкнулся с проблемой при использовании данной функции.   ...
y=getDepoEx ("MC0003300000", "555555", "SU26225RMFS1", "L01-00000F00", 2).currentbal
 
Добрый день!

Вы любите рисковать))
В lua, как в динамически типизированном языке, стоит всегда добавлять проверки на null, а потом уже доставать из переменной значения, как из таблицы:
 
Код
      local   depo   =     getDepo  Ex (  "MC0003300000"  ,  " 555555 " ,  "SU26225RMFS1" ,  "L01 - 00000F00" ,   2  )
  local   currentbal   =   depo   and   depo.currentbal 
                           or     0     -- например      
 

Пробовал, сама первая строка, которую вы предлагаете вышибает скрипт.  Повторюсь, только в момент подключения к серверу в первый раз за сутки, когда очищаются данные на сервере (как прописано в настройках Квика). Дальше в течении дня все работает корректно.
 
Дубль
 
--
 
Цитата
Kolossi написал:
Если бы она возвращала nil, я бы сюда не обращался. Скрипт останавливается с ошибкой : attempt to index a nil value
А это сообщение разве не говорит что значение nil?
 
Цитата
Kolossi написал:
Цитата
vgi написал:
Вы любите рисковать))
Код
local depo = getDepoEx ("MC0003300000", "555555", "SU26225RMFS1", "L01-00000F00", 2)
...
 
Пробовал, сама первая строка, которую вы предлагаете вышибает скрипт.

Помимо рисковать, ещё любите спамить))
Попробуйте кнопку Просмотр перед тем, как Отправить.
На форуме нет возможности исправить/удалить сообщение.

А по делу. Ситуация странная, надеюсь АРКА поможет.
Как бы то ни было, надо, чтобы ошибки не вышибали скрипт. Используйте pcall / xpcall и логгируйте ошибки.
https://forum.quik.ru/messages/forum10/message34051/topic3970/#message34051
 
Цитата
vgi написал:
Цитата
Kolossi написал:
 
Цитата
vgi  написал:
Вы любите рисковать))
Код
   local  depo  =   getDepo Ex ( "MC0003300000" ,  "555555" ,  "SU26225RMFS1" ,  "L01-00000F00" ,  2 )
 .. .
  
   
Пробовал, сама первая строка, которую вы предлагаете вышибает скрипт.

Помимо рисковать, ещё любите спамить))
Попробуйте кнопку  Просмотр  перед тем, как  Отправить .
На форуме нет возможности исправить/удалить сообщение.

А по делу. Ситуация странная, надеюсь АРКА поможет.
Как бы то ни было, надо, чтобы ошибки не вышибали скрипт. Используйте pcall / xpcall и логгируйте ошибки.
https://forum.quik.ru/messages/forum10/message34051/topic3970/#message34051
Ну вот и спамером обозвали :(, не со зла я :) . Надеюсь админ почистит.
По ситуации мне не понятно, почему такой проблемы нет в других функциях получения данных из таблиц типа getParamEx и др . Завтра на открытии попробую посмотреть getDepo(...)
 
Цитата
Sergey Gorokhov написал:
Цитата
Kolossi написал:
Если бы она возвращала nil, я бы сюда не обращался. Скрипт останавливается с ошибкой : attempt to index a nil value
А это сообщение разве не говорит что значение nil?
Не говорит, это сообщение о причине остановки скрипта.
 
Цитата
Kolossi написал:
Цитата
Sergey Gorokhov написал:
 
Цитата
Kolossi  написал:
Если бы она возвращала nil, я бы сюда не обращался. Скрипт останавливается с ошибкой : attempt to index a nil value
А это сообщение разве не говорит что значение nil?
Не говорит, это сообщение о причине остановки скрипта.

сообщение о причине остановки скрипта, как раз и говорит о том что Вы пытаетесь получить параметр таблицы которая есть nil
Как уже было сказано и еще раз повторим, что для решения проблемы надо сделать проверку на nil
 
Цитата
Sergey Gorokhov написал:
Цитата
Kolossi написал:
 
Цитата
Sergey Gorokhov  написал:
 
Цитата
 Kolossi   написал:
Если бы она возвращала nil, я бы сюда не обращался. Скрипт останавливается с ошибкой : attempt to index a nil value
А это сообщение разве не говорит что значение nil?
Не говорит, это сообщение о причине остановки скрипта.

сообщение о причине остановки скрипта,  как раз и говорит о том что Вы пытаетесь получить параметр таблицы которая есть nil
Как уже было сказано и еще раз повторим, что для решения проблемы  надо сделать проверку на nil
Еще раз попробую объяснить. Я не тупой и не начинающий :) И пример с type тоже не зря привел.
Сама проверка на nil, останавливает скрипт !!!.
Т.е. в конструкции

if getDepoEx ("MC0003300000", "555555", "SU26225RMFS1", "L01-00000F00", 2) then
  y=getDepoEx ("MC0003300000", "555555", "SU26225RMFS1", "L01-00000F00", 2).currentbal
end

первая строка останавливает скрипт с диагнозом : attempt to index a nil value
 
 
Kolossi,

не воспроизводится
Код
if getDepoEx ("MC0003300000", "555555", "SU26225RMFS1", "L01-00000F00", 2) then
  message("getDepoEx~=nil")
else
  message("getDepoEx is nil")
end



Может у Вас версия терминала старая?
 
essay writing service
essay help

viagra generic viagra generic
viagra for sale viagra for sale
levitra 20 mg levitra 20 mg
viagra for sale viagra for sale
write my essay write my essay
custom writing custom writing
viagra generic viagra generic
essay writing service essay writing service
viagra without a doctor prescription viagra without a doctor prescription
custom writing
custom writing
 
write my essay
write my essay

viagra generic viagra generic
viagra for sale viagra for sale
levitra 20 mg levitra 20 mg
viagra for sale viagra for sale
write my essay write my essay
custom writing custom writing
viagra generic viagra generic
essay writing service essay writing service
viagra without a doctor prescription viagra without a doctor prescription
paper writing service
write my essay
 
essay writing service
write my paper for me

viagra generic viagra generic
viagra for sale viagra for sale
levitra 20 mg levitra 20 mg
viagra for sale viagra for sale
write my essay write my essay
custom writing custom writing
viagra generic viagra generic
essay writing service essay writing service
viagra without a doctor prescription viagra without a doctor prescription
write my essay
write my essay
 
write my paper
write my paper for me

viagra generic viagra generic
viagra for sale viagra for sale
levitra 20 mg levitra 20 mg
viagra for sale viagra for sale
write my essay write my essay
custom writing custom writing
viagra generic viagra generic
essay writing service essay writing service
viagra without a doctor prescription viagra without a doctor prescription
write my essay
paper writing service
 
write my essay for me
writing help

viagra generic viagra generic
viagra for sale viagra for sale
levitra 20 mg levitra 20 mg
viagra for sale viagra for sale
write my essay write my essay
custom writing custom writing
viagra generic viagra generic
essay writing service essay writing service
viagra without a doctor prescription viagra without a doctor prescription
custom writing
essay writing service
 
essay help
best essay writing service

viagra generic viagra generic
viagra for sale viagra for sale
levitra 20 mg levitra 20 mg
viagra for sale viagra for sale
write my essay write my essay
custom writing custom writing
viagra generic viagra generic
essay writing service essay writing service
viagra without a doctor prescription viagra without a doctor prescription
write my essay
custom writing
 
best essay writing service
write my essay for me

viagra generic viagra generic
viagra for sale viagra for sale
levitra 20 mg levitra 20 mg
viagra for sale viagra for sale
write my essay write my essay
custom writing custom writing
viagra generic viagra generic
essay writing service essay writing service
viagra without a doctor prescription viagra without a doctor prescription
write my essay
essay help
 
Цитата
Sergey Gorokhov написал:
Kolossi,

не воспроизводится
Код
   if   getDepo Ex ( "MC0003300000" ,  "555555" ,  "SU26225RMFS1" ,  "L01-00000F00" ,  2 )  then 
   message ( "getDepoEx~=nil" )
 else 
   message ( "getDepoEx is nil" )
 end 
  

 

Может у Вас версия терминала старая?
Новая. Вы не внимательно читаете.  Ошибка выскакивает только в момент коннекта с сервером в первый раз за текущие сутки.
Т.е. в терминале стоит реконнект начиная с 9-30 утра и в Основных настройках стоит "Очищать данные после смены даты ...на сервере".   Вот в момент первого реконнекта это и происходит. Дальше все нормально работает.

PS У вас nil, потому что стоит не ваш счет клиента 555555 и другие параметры тоже не ваши.  
 
Цитата
Kolossi написал:
Новая. Вы не внимательно читаете.
новая это какая?
И не вижу чтобы Вы сообщали версию.

Цитата
Kolossi написал:
PS У вас nil, потому что стоит не ваш счет клиента 555555 и другие параметры тоже не ваши.  

на первом коннекте тоже не воспроизводится.
 
версия 7.23.2.5

Сергей, спасибо за ваши попытки помочь. Давайте попробуем воспроизвести ситуацию.

Пусть у вас в цикле getDepoEx(...).currentball получает количество бумаг определенного тикера периода T2. Т.е. той бумаги, которая у вас реально есть в портфеле.

В настройках Квика стоит "Очищать данные после смены даты ...на сервере" и "Восстанавливать связь с 9-30 до ...

С вечера запустите скрипт и если он живым  доедет до 10-00 следующего утра, я посыплю голову пеплом и закрою вопрос или попробую поискать причину вне Квика.
 
Еще один момент.
Вчера поставил рядом две функции выборки из одной и той же таблицы:

1:   p=getDepo( "555555", "MC0003300000",  "SU26225RMFS1", "L01-00000F00").depo_current_balance
2:   y=getDepoEx ("MC0003300000", "555555", "SU26225RMFS1", "L01-00000F00", 2).currentbal

В 9-30 скрипт вылетел с указанием на сроку 2.  Т.е. getDepo(...) отработала штатно в отличие от getDepoEx(...)

Хрень какая-то :(
Страницы: 1
Читают тему (гостей: 2)
Наверх