Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) временные таблицы в присоединенной ИБ (число прочтений - 2888 )
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
временные таблицы в присоединенной ИБ
20. Февраля 2010 :: 07:30
Печать  
помогите, туплю-с
делаю ПрисоединитьИБ, УстБД и т.п.
запрос к табличной части документа, где таблица примерно такого вида:
НомерСчета, ... , Приход, Расход
запрос выполняется великолепно; но желательно его отфильтровать в ходе выполнения, по определенным НомерСчета. И есть списокзначений этих номеров счетов.
делаю create table <имя табле> insert into <имя табле>,
потом проверяю select * from <имя табле>
ругается, invalid <имя табле>
Причем, уверен, что такая тема уже поднималась, но найти рецепта не смог
  
Наверх
ICQ  
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: временные таблицы в присоединенной ИБ
Ответ #1 - 20. Февраля 2010 :: 07:31
Печать  
база на sql 2000
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: временные таблицы в присоединенной ИБ
Ответ #2 - 20. Февраля 2010 :: 07:47
Печать  
Если две базы на одном sql сервере то создавай не локальные временные таблицы а глобальные временные таблицы
(начинаются с  ## ).После выполнения запроса желательно врем
таблицы удалять.
Ели базы на разных серверах то рассисывай задачу более подробней с точным текстом sql запросов и что не получается.
  
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: временные таблицы в присоединенной ИБ
Ответ #3 - 20. Февраля 2010 :: 13:43
Печать  
ок, уже пробую, спасибо
  
Наверх
ICQ  
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: временные таблицы в присоединенной ИБ
Ответ #4 - 20. Февраля 2010 :: 14:23
Печать  
не получается; текст запроса такой:

Код
Выбрать все
	ИБ=СоздатьОбъект("ODBCDataBase");
	ИБ.ПрисоединитьИБ(ПутьБД,,,"Driver={SQL Server};Server=(local);database=basa;Uid=sa;Pwd=пароль;");

	Запрос1спп=СоздатьОбъект("ODBCRecordset");
	Запрос1спп.УстБД(ИБ);



ИмятабРасчетныеСчета="##rassch";

	Запрос1спп.Выполнить("create table "+ИмятабРасчетныеСчета+"(id val char(20))");
	Для с=1 по спРасчетныеСчета.РазмерСписка() цикл
		Запрос1спп.Выполнить("insert into "+ИмятабРасчетныеСчета+" values('"+спРасчетныеСчета.получитьзначение(с)+"')");
	КонецЦикла;

	таб11=Запрос1спп.ВыполнитьИнструкцию("select * from "+ИмятабРасчетныеСчета);
 



ругается:
Цитата:
State 42S02, native 208, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name '##rassch'.

  
Наверх
ICQ  
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: временные таблицы в присоединенной ИБ
Ответ #5 - 20. Февраля 2010 :: 14:30
Печать  
база, из которой соединяемся, вообще dbf-ная, если это играет роль
ругается на последней строке, это тоже выяснил
  
Наверх
ICQ  
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: временные таблицы в присоединенной ИБ
Ответ #6 - 22. Февраля 2010 :: 18:46
Печать  
разобрался - ошибка оказалась тупейшей

Код
Выбрать все
Запрос1спп.Выполнить("create table "+ИмятабРасчетныеСчета+"(id val char(20))");

 


  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: временные таблицы в присоединенной ИБ
Ответ #7 - 24. Февраля 2010 :: 05:16
Печать  
ol писал(а) 20. Февраля 2010 :: 14:30:
база, из которой соединяемся, вообще dbf-ная, если это играет роль
ругается на последней строке, это тоже выяснил

Тогда
1.используй локал. временные таблицы
ИмятабРасчетныеСчета="#rassch";
2.Наверное вместо
ПрисоединитьИБ
лучше использовать ИБ.Соединение
3. И вместо метода Запрос1спп.Выполнить ( считается устаревшим и оставлен для совместимости )
использовать Запрос1спп.ВыполнитьСкалярный
  
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: временные таблицы в присоединенной ИБ
Ответ #8 - 24. Февраля 2010 :: 09:51
Печать  
да там я разобрался; проблема была - при редактировании скопированного куска кода не заметил корявку; а парсер SQL проглотил код создания таблицы, а при ее использовании начал верещать.
а ВыполнитьСкалярный - что выиграет в отношении с просто Выполнить или ВыполнитьИнструкцию ?
  
Наверх
ICQ  
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: временные таблицы в присоединенной ИБ
Ответ #9 - 24. Февраля 2010 :: 10:28
Печать  
SQL не проглатил, просто Выполнить() не генерирует исключение
  
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: временные таблицы в присоединенной ИБ
Ответ #10 - 24. Февраля 2010 :: 18:41
Печать  
гм, действительно, ВыполнитьСкалярный для того же кода с ошибкой ругается весьма недвусмысленно  Круглые глаза
  
Наверх
ICQ  
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: временные таблицы в присоединенной ИБ
Ответ #11 - 25. Февраля 2010 :: 10:08
Печать  
я обычно DDL-запросы так пишу
Код
Выбрать все
RS.Выполнить("drop table #tmp");//ошибка, если таблицы нет-пофиг:), если есть удалится

рез = RS.Выполнить("create table #tmp(id char(9))");
Если рез = 0 Тогда
	Сообщить(RS.ПолучитьОписаниеОшибки(),"!!!");
	Возврат;
КонцЕсли; 

  
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: временные таблицы в присоединенной ИБ
Ответ #12 - 26. Февраля 2010 :: 19:46
Печать  
кстати, удобный способ drop Улыбка
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать