Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Типизация внутри открытой выборки (число прочтений - 1558 )
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Типизация внутри открытой выборки
25. Февраля 2009 :: 10:42
Печать  
Может быть меня снова ткнут носом в доку но сам пока найти не могу .....
В общем не работает типизация внутри открытой выборки. И не просто не работает, а валит 1С с надоевшим уже мне матюком "Подключение занято до получения результатов для другого hstmt"
Ну я так понял это что-то типа сообщения на все случаи жизни у ODBC Улыбка

Берем простейший запрос
Код
Выбрать все
 |select Журнал.IDDOC [Док $Документ],
 |Журнал.IDDOCDEF as Док_вид
 |from _1SJOURN as Журнал (nolock)
 |where (Журнал.DATE_TIME_IDDOC between :НачДата and :КонДата~)
 



Если его выполнить через
Код
Выбрать все
    ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
    ТЗ.ВыбратьСтроку();
 


т.е. сразу в ТЗ, то все нормально.

Если-же попытаться открыть выборку и получать значения в цикле
Код
Выбрать все
Пока Запрос.След() = 1 Цикл
    Сообщить(Название(Запрос.ПолучитьЗначение("Док")));
КонецЦикла; 



получаем падение 1С с приведенными выше матюками. Причем не важно где типизировать, в запросе или уже при выводе, через
Код
Выбрать все
МД = СоздатьОбъект("MetaDataWork");
МД.ЗначениеИзСтрокиБД("Документ", "РасходнаяНакладная", Запрос.ПолучитьЗначение("Док")) 


В обеих случаях падает с одинаковым грохотом  Печаль

Я не думаю что я один такой умный/невезучий и  подозреваю что это уже FAQ .... но я так и не смог найти ни предупреждения ни объяснения этого факта. Ткните носом pls!  Смущённый

Кстати только что попробовал через УстТипыКолонок1С(ТипыКолонок)
Результат тот-же! Хотя в доке к нему написано "метод используется только после открытия выборки, методом Открыть"

Блин! Ну объясните же мне  - почему лыжи не едут?!!!!!  Плачущий
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Типизация внутри открытой выборки
Ответ #1 - 25. Февраля 2009 :: 10:57
Печать  
А если в Открыть() передать вторым параметром единицу?  Нерешительный
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Типизация внутри открытой выборки
Ответ #2 - 25. Февраля 2009 :: 11:14
Печать  
berezdetsky писал(а) 25. Февраля 2009 :: 10:57:
А если в Открыть() передать вторым параметром единицу?  Нерешительный

О! Заработало! Спасибо огромное!

А еще большее спасибо было-бы, если-бы кто объяснил мне, недалекому, что вообще это означает "использовать курсор" и почему без него не работало?
А Лучше URL где это все толково разжовывается, а то мое знание SQL и ODBC ..... ну скажем так - оставляет желать лучшего  Смущённый
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Типизация внутри открытой выборки
Ответ #3 - 25. Февраля 2009 :: 11:30
Печать  
"Подключение занято..." возникает при попытке открыть два локальных курсора одновременно. При установке параметра bUseCursors открывается серверный курсор. Как-то так..

Если вдруг функционала ODBCRecordset не хватит, тут ещё посмотри..
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Типизация внутри открытой выборки
Ответ #4 - 26. Февраля 2009 :: 07:43
Печать  
berezdetsky писал(а) 25. Февраля 2009 :: 11:30:
"Подключение занято..." возникает при попытке открыть два локальных курсора одновременно. При установке параметра bUseCursors открывается серверный курсор. Как-то так..

Если вдруг функционала ODBCRecordset не хватит, тут ещё посмотри..


Спасибо! За класс "серверные курсоры" особенно.....
Пока мне ODBCRecordset хватает, но это я думаю ненадолго, пока не разберусь как следует и не возрастут потребности Улыбка
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать