Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Очень популярная тема (более 25 ответов) Проблема с временными таблицами. Только у меня? (число прочтений - 8302 )
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Проблема с временными таблицами. Только у меня?
08. Февраля 2008 :: 12:22
Печать  
Код
Выбрать все
ТекстЗапроса = "
 |Set NoCount ON
 |
 |Create Table #Z(X Int)
 |";

 RecordSet.ВыполнитьИнструкцию(ТекстЗапроса);

 ТекстЗапроса = "
 |Set NoCount ON
 |
 |INSERT INTO #Z
 |(X)
 |Values
 |(1)
 |";

 RecordSet.ВыполнитьИнструкцию(ТекстЗапроса);

 ТекстЗапроса = "
 |Set NoCount ON
 |
 |SELECT
 | *
 |FROM
 | #Z
 |
 |Drop Table #Z
 |";

 RecordSet.ВыполнитьИнструкцию(ТекстЗапроса);
  



На третьем запросе:
State 42S02, native 208, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name '#Z'.
Если убрать решетку - нормально все

« Последняя редакция: 08. Февраля 2008 :: 13:29 - Вадимко »  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Проблема с временными таблицами. Только у меня
Ответ #1 - 08. Февраля 2008 :: 12:48
Печать  
А ЗапросСКЛ - объект какого-то левого класса? У меня с ODBCRecordSet не воспроизводится.
  

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


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Проблема с временными таблицами. Только у меня
Ответ #2 - 08. Февраля 2008 :: 13:28
Печать  
Нет, все типичное

RecordSet = СоздатьОбъект("ODBCRecordSet");
RecordSet.РежимRPC(1);

Подправил сабж, а то код не мой был Улыбка
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Проблема с временными таблицами. Только у меня
Ответ #3 - 08. Февраля 2008 :: 13:30
Печать  
ВСЕ ЯСНО!
Трабла в РежимRPC(1)  Смех
А как быть лучше?
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Проблема с временными таблицами. Только у меня
Ответ #4 - 08. Февраля 2008 :: 13:36
Печать  
Цитата:
ВСЕ ЯСНО!
Трабла в РежимRPC(1)  Смех
А как быть лучше?

Назови таблицу ##Z   Подмигивание
  

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


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Проблема с временными таблицами. Только у меня
Ответ #5 - 08. Февраля 2008 :: 13:52
Печать  
Угу, получилось (забыл пробовал так или нет) Улыбка
Но наверное надо заменить гду нужно на парам. запросы а где нет оставить отключенным режим
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Проблема с временными таблицами. Только у меня
Ответ #6 - 09. Февраля 2008 :: 05:33
Печать  
berezdetsky писал(а) 08. Февраля 2008 :: 13:36:
Назови таблицу ##Z   Подмигивание

но ведь будут проблемы при одновременном запуске этих инструкций на нескольких подключениях
  

1&&2&&3
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Проблема с временными таблицами. Только у меня
Ответ #7 - 09. Февраля 2008 :: 09:10
Печать  
Та я все равно формирую уникальное имя, правда использую не временные таблицы Печаль
В общем переделаю как появится время
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Проблема с временными таблицами. Только у меня
Ответ #8 - 09. Февраля 2008 :: 13:29
Печать  
trad писал(а) 09. Февраля 2008 :: 05:33:
berezdetsky писал(а) 08. Февраля 2008 :: 13:36:
Назови таблицу ##Z   Подмигивание

но ведь будут проблемы при одновременном запуске этих инструкций на нескольких подключениях

На то там и смайлик. Понятно, что это было не решение, а повод для размышлений - что важнее, "временность" таблицы или  Ужас кэширование плана выполнения инструкции CREATE TABLE? Там ведь достаточно было создать таблицу не в режиме RPC..
« Последняя редакция: 14. Февраля 2008 :: 16:00 - berezdetsky »  

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


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Проблема с временными таблицами. Только у меня
Ответ #9 - 09. Февраля 2008 :: 17:21
Печать  
УЖЕ ЯСНО БЫЛО СРАЗУ
Спасибо
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Проблема с временными таблицами. Только у меня
Ответ #10 - 14. Февраля 2008 :: 06:52
Печать  
(Вадимко) как то не понятно зачем удалять таблицу сразу после select.
получается что таблица нужна только для единственного select.
Даже если это и так ( ИХМО) гораздо логичнее перед созданием таблицы
проверить ее существование например так
Код
Выбрать все
ТекстЗАпроса = "
 |Drop Table ##Z
 |";
Попытка
 RecordSet.ВыполнитьСкалярный(ТекстЗапроса);
Исключение
КонецПопытки;
// Далее создать и заполнить ##Z
 


а после select убрать уничтожение таблицы.
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Проблема с временными таблицами. Только у меня
Ответ #11 - 14. Февраля 2008 :: 07:38
Печать  
Z1 писал(а) 14. Февраля 2008 :: 06:52:
(Вадимко) как то не понятно зачем удалять таблицу сразу после select.
получается что таблица нужна только для единственного select.


Был же приведен просто тестовый пример. Смысл проблемы - погибала временная таблица между двумя запросами.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Проблема с временными таблицами. Только у меня
Ответ #12 - 14. Февраля 2008 :: 10:27
Печать  
sadovnikov писал(а) 14. Февраля 2008 :: 07:38:
Был же приведен просто тестовый пример. Смысл проблемы - погибала временная таблица между двумя запросами.

Проблема в том, что в SQL-коде этого тестового примера есть ошибка (set nocount on на уровне подключения). Просто в RPCMode она проявляется раньше. А пропадание таблицы - следствие (одно из).
  

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Проблема с временными таблицами. Только у меня
Ответ #13 - 14. Февраля 2008 :: 11:40
Печать  
berezdetsky писал(а) 14. Февраля 2008 :: 10:27:
sadovnikov писал(а) 14. Февраля 2008 :: 07:38:
Был же приведен просто тестовый пример. Смысл проблемы - погибала временная таблица между двумя запросами.

Проблема в том, что в SQL-коде этого тестового примера есть ошибка (set nocount on на уровне подключения). Просто в RPCMode она проявляется раньше. А пропадание таблицы - следствие (одно из).

А зачем вообще использовать  set nocount on ?
Надо вместо ВыполнитьИнструкцию() для создания таблицы использовать ВыполнитьСкалярный()  ( при этом set nocount on не нужен ) т.е.
Код
Выбрать все
ТекстЗапроса = "Create Table ##Z(X Int)";
RecordSet.ВыполнитьСкалярный(ТекстЗапроса); 


  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Проблема с временными таблицами. Только у меня
Ответ #14 - 14. Февраля 2008 :: 12:19
Печать  
Z1 писал(а) 14. Февраля 2008 :: 11:40:
А зачем вообще использовать  set nocount on ?

http://www.1cpp.ru/forum/YaBB.pl?num=1164026472/1#1
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать