v7: Выборка из временной таблицы прямой запрос #659638


#0 by art_id
Есть простенький запрос. "|SET NOCOUNT ON | |SELECT Выдает ошибку Недопустимое имя столбца "Элемент" Если выбрать все поля из ВТ, то все ок. Подскажите ЧЯДНТ?
#1 by ДенисЧ
А зачем ты приводишь тип при выгрузке в временную таблицу?
#2 by art_id
Со старого осталось запроса. Но даже без приведения типа ошибку выдает
#3 by viktor_vv
Надо перед выполнением уничтожать временную таблицу, если она есть.
#4 by viktor_vv
На самом деле у тебя ошибка при записи во временную таблицу. Но показывается только последняя.
#5 by art_id
Пробовал, не помогает. Причем в инете найти не могу где пример выборки есть из ВТ
#6 by art_id
какая ошибка? как ее поймать?
#7 by viktor_vv
Ну тогда попробуй отдельным запросом во временную, через Выполнить, а другим уже выгребай оттуда.
#8 by Ёпрст
выкини типизация
#9 by Ёпрст
тиризацию
#10 by МихаилМ
вот и посмотрите, как у Вам в ВТ поля называютя. очевидно, что полей с осмысленными названиями быть не должно, тк имена полей создщаютя   $ДокументСтроки
#11 by art_id
Спасибо всем. Убрал типизацию. Первый запрос через Выполнить поместил, вторым выбрал. Получилось.
#12 by viktor_vv
См насчет отдельного запроса.
#13 by art_id
Но почему не работает в одном запросе?
#14 by Ёпрст
go
#15 by art_id
т.е. в начале запроса необходимо GO?
#16 by viktor_vv
Да оно вроде и без go работает. Сейчас сделал простенький запрос подобный , все в одном работает нормально.
#17 by art_id
хм, странно. Может из-за версии компоненты?
#18 by viktor_vv
См . И смотри в ТЗ имена столбцов. Или через отладка получи текст запроса и загони в QA. Попробуй еще имя дать не Элемент, а другое какое-то.
#19 by art_id
вот именно что если делать через Select * FROM ... То потом выдает ТЗ с нормальными именами. Сейчас попробовал через GO ТекстЗапроса = "    |GO    |DROP TABLE #ТаблицаСпецификаций    |    |SET NOCOUNT ON Выдала ошибку Связанная инструкция не подготовлена
#20 by МихаилМ
go - это шутка
#21 by Ёпрст
:) догадливый.. ЗЫ: на самом деле всё просто  - ВыполнитьИнструкцию  возвращает результат только первого запроса, хотя и обрабатывает их все.
#22 by art_id
понятно
#23 by Ёпрст
т.е если запрос содержит несколько  конструкций (запросов), результат будет  только от первой конструкции (но все запросы всё равно выполнятся)..это еще в доке было написано (вроде).
#24 by МихаилМ
+ это относится к odbc в ole db - наоборот
#25 by Ёпрст
поэтому, тебе и надо 2 раза выполнять - один для создания таблички, второй для выборки. Ну и что нить типа этого воткнуть еще не мешает: перед пиханием во временную табличку
#26 by Ёпрст
ага, там результат последнего возвращает.
#27 by art_id
ну либо я в доке не увидел, либо дока какая-то другая у меня. Если есть ссылочка на документацию, поделись пжл. А не прокатит через Выполнить, а затем ПолучитьРезультатыВ_ТЗ? if object_id(N'tempdb..#ТаблицаСпецификаций') is not null Это я так понимаю что если ВТ существует, то удаляем. Где про это прочитать можно?
#28 by Ёпрст
#29 by Ёпрст
#30 by ADirks
И Set NoCount ON   д.б. _первой_ конструкцией в запросе! На рефлексе. а то, в результате, к примеру |delete from #ТаблицаСпецификаций |SET NOCOUNT ON получишь несколько неожиданный результат
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С