Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Запрос из таблицы значений (число прочтений - 13336 )
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Запрос из таблицы значений
03. Февраля 2010 :: 10:15
Печать  
Почему у меня при попытке выполнить
Код
Выбрать все
рс.ВыполнитьSQL_ИзТЗ(ТЗ,100); 


падает 1с? Может быть дело в объеме таблицы (13х22000)?
Пользуюсь процедурой из
http://www.1cpp.ru/forum/YaBB.pl?num=1170322440/.
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #1 - 09. Февраля 2010 :: 08:25
Печать  
Ну подскажите же мне пожалуйста, где можно поподробнее почитать об этом!
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #2 - 09. Февраля 2010 :: 09:03
Печать  
Цитата:
Может быть дело в объеме таблицы (13х22000)?
на меньшем размере проверял?

Какая версия ВК?

провел такой тест:
Код
Выбрать все
Процедура Сформировать()
	рс=СоздатьОбъект("ODBCRecordset");
	СтрCreate="create table #tmp1 (/*column_definition*/)";
	СтрInsert="insert into #tmp1 values(/*?*/)";

	ТЗ=СоздатьОбъект("ТаблицаЗначений");
	Для Тек=1 По 13 Цикл
		Если Тек%2=0 Тогда
			ТЗ.НоваяКолонка("Кол"+Тек,"Число",10,2);
			рс.ДобПараметр(1,11,10,2);
			SQL_тип="numeric(10,2)";
		Иначе
			ТЗ.НоваяКолонка("Кол"+Тек,"Строка",10);
			рс.ДобПараметр(1,14,10,0);
			SQL_тип="char(10)";
		КонецЕсли;
		СтрCreate=СтрЗаменить(СтрCreate,"/*,*/",", ");
		СтрCreate=СтрЗаменить(СтрCreate,"/*column_definition*/",("Кол"+Тек)+" "+SQL_тип+"/*,*//*column_definition*/");
		СтрInsert=СтрЗаменить(СтрInsert,"/*,*/",", ");
		СтрInsert=СтрЗаменить(СтрInsert,"/*?*/","?/*,*//*?*/");
	КонецЦикла;
	ТЗ.КоличествоСтрок(22000);
	ТЗ.Заполнить(12345.23);

	ТекстЗапроса="
	|set nocount on
	|if exists (select * from tempdb..sysobjects where id=object_id('tempdb..#tmp1') and sysstat & 0xf = 3 )
	|  drop table #tmp1;
	|"+СтрCreate+"
	|";
	рс.ВыполнитьИнструкцию(ТекстЗапроса);
	рс.Подготовить(СтрInsert);
	рс.ВыполнитьSQL_ИзТЗ(ТЗ,100);

	Рез=рс.ВыполнитьИнструкцию("select * from #tmp1
	|drop table #tmp1");
	Рез.ВыбратьСтроку(,);
КонецПроцедуры 



все Ок.
проверял на 2.5.0.7 и 3.0.1.26
  

1&&2&&3
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #3 - 01. Марта 2010 :: 05:37
Печать  
Простите за долгое молчание....
Версия компаненты 3.0.1.26.
Тексты запросов:
Код
Выбрать все
set nocount on
if exists (select * from tempdb..sysobjects where id=object_id('tempdb..#MyTableOsn') and sysstat & 0xf = 3 )
  drop table #MyTableOsn;
create table #MyTableOsn (KOD char(9), MANAGER char(25), CITY char(20), POST char(9), SROK numeric(3,0), ABC char(9), XYZ char(9), OST numeric(15,3),
DIN numeric(15,4), SZ numeric(15,2), RN numeric(15,0), MIN numeric(15,3), MAX numeric(15,3), DATE datetime, DOP numeric(15,2)/*,*//*column_definition*/)
set nocount off

******************************************************************
insert into #MyTableOsn values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?/*,*//*?*/) 

  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #4 - 01. Марта 2010 :: 05:38
Печать  
trad писал(а) 09. Февраля 2010 :: 09:03:
Цитата:
Может быть дело в объеме таблицы (13х22000)?
на меньшем размере проверял?


С вашей процедурой работает.
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #5 - 01. Марта 2010 :: 06:10
Печать  
Всё дело было в названии одной колонки таблицы значений "Date".
Спасибо за помощь!
Теперь с хранения в XBase перелезу на хранение в базе SQL!
Вопрос снят.
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #6 - 01. Марта 2010 :: 06:53
Печать  
поставь в квадратные скобки
..., [DATE] datetime,...
  

1&&2&&3
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #7 - 01. Марта 2010 :: 07:08
Печать  
"...[Date] datetime..." - скобки не помогли не получается дату уложить... Печаль
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #8 - 01. Марта 2010 :: 07:20
Печать  
какие параметры метода ДобПараметр() для поля "дата"?
  

1&&2&&3
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #9 - 01. Марта 2010 :: 07:21
Печать  
Может быть дело в том, что есть незаполненные значения в ТЗ?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #10 - 01. Марта 2010 :: 07:23
Печать  
trad писал(а) 01. Марта 2010 :: 07:20:
какие параметры метода ДобПараметр() для поля "дата"?

рс.ДобПараметр(1,8,0,0);
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #11 - 01. Марта 2010 :: 07:27
Печать  
рс.ДобПараметр(1,10,8,0);
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #12 - 01. Марта 2010 :: 07:49
Печать  
al_zzz писал(а) 01. Марта 2010 :: 07:21:
Может быть дело в том, что есть незаполненные значения в ТЗ?

а вот это проблема для полей с типом datetime
  

1&&2&&3
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #13 - 01. Марта 2010 :: 07:55
Печать  
trad писал(а) 01. Марта 2010 :: 07:49:
al_zzz писал(а) 01. Марта 2010 :: 07:21:
Может быть дело в том, что есть незаполненные значения в ТЗ?

а вот это проблема для полей с типом datetime

А как она обычно решается?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #14 - 01. Марта 2010 :: 07:57
Печать  
trad писал(а) 01. Марта 2010 :: 07:27:
рс.ДобПараметр(1,10,8,0);

рс.ВыполнитьSQL_ИзТЗ(ТЗ,100);
{C:\1SBASES\COPYS\USR36\УЛОЖИТЬ В БАЗУ.ERT(84)}: Произошла ошибка при выполнении запроса.                  
State 22007, native 0, message [Microsoft][ODBC SQL Server Driver]Invalid date format
Это из-за пустых значений?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #15 - 01. Марта 2010 :: 07:59
Печать  
да, скорее всего
  

1&&2&&3
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #16 - 01. Марта 2010 :: 08:21
Печать  
Это как-то можно обойти?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #17 - 01. Марта 2010 :: 08:24
Печать  
я пока вижу выход в замене пустых дат в ТЗ на '01.01.1753'
  

1&&2&&3
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #18 - 01. Марта 2010 :: 08:30
Печать  
trad писал(а) 01. Марта 2010 :: 08:24:
я пока вижу выход в замене пустых дат в ТЗ на '01.01.1753'

Я попробовал заменить пустые значения на текущую дату( так логичнее в обработке), получил:
Код
Выбрать все
рс.ВыполнитьSQL_ИзТЗ(ТЗ,100);
{C:\1SBASES\COPYS\USR36\УЛОЖИТЬ В БАЗУ.ERT(84)}: Произошла ошибка при выполнении запроса.
 State 22008, native 0, message [Microsoft][ODBC SQL Server Driver]Datetime field overflow 


И ещё вопрос один у меня есть.
Если я хочу работать с таблицей из другой базы SQL, мне нужно указать, вместо tempdb имя базы?
Я так сделал при этом один раз она создалась, при второй попытке сообщает, что такая база уже существует.
И как получить выборку из такой базы?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #19 - 01. Марта 2010 :: 08:50
Печать  
Цитата:
{C:\1SBASES\COPYS\USR36\УЛОЖИТЬ В БАЗУ.ERT(84)}: Произошла ошибка при выполнении запроса.
State 22008, native 0, message [Microsoft][ODBC SQL Server Driver]Datetime field overflow

в выше приведенном коде я заменил несколько строк. и ошибок нет.
...
Иначе
     ТЗ.НоваяКолонка("Кол"+Тек,"Дата");
     рс.ДобПараметр(1,10,8,0);
     SQL_тип="datetime";
КонецЕсли;
...
ТЗ.Заполнить(РабочаяДата());
...


проверь у себя все описания типов
  

1&&2&&3
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #20 - 01. Марта 2010 :: 09:01
Печать  
Код
Выбрать все
рс.ДобПараметр(1,[b]10,8,0[/b]); 

- синтаксис-помощник не пропускает,
если не меняя эту строчку:
Код
Выбрать все
рс_.ВыполнитьИнструкцию(СтрЗаменить(ТекстЗапроса,"%Имя%",ИмяТаб));
{C:\1SBASES\COPYS\USR36\УЛОЖИТЬ В БАЗУ.ERT(83)}: State 42000, native 170, message [Microsoft][ODBC SQL Server Driver][SQL Server]Line 5: Incorrect syntax near '/b'. 

  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #21 - 01. Марта 2010 :: 09:02
Печать  
al_zzz писал(а) 01. Марта 2010 :: 08:30:
Если я хочу работать с таблицей из другой базы SQL, мне нужно указать, вместо tempdb имя базы?
если ты на том же сервере и в том же коннекте, то можно использовать ту же врем.таблицу #имя
если в другом коннекте, то можно глобальную врем.таблицу ##имя
если хочешь не временную таблицу, то соответственно
set nocount on
if exists (select * from [ИмяБД..]sysobjects where id=object_id('[ИмяБД..]tmp1') and sysstat & 0xf = 3 )
  drop table [ИмяБД..]tmp1;
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #22 - 01. Марта 2010 :: 09:04
Печать  
Цитата:
- синтаксис-помощник не пропускает,
форумные тэги убери Улыбка
  

1&&2&&3
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #23 - 01. Марта 2010 :: 09:16
Печать  
  Улыбка SQL пока плохо знаю... Думал, что это что-то из синтаксис конструкций языка...
Вот текст запроса и ошибка:
Код
Выбрать все
set nocount on
if exists (select * from tempdb..sysobjects where id=object_id('tempdb..#MyTableOsn') and sysstat & 0xf = 3 )
  drop table #MyTableOsn;
create table #MyTableOsn (KOD char(9), MANAGER char(25), CITY char(20), POST char(9), SROK numeric(3,0), ABC char(9), XYZ char(9), OST numeric(15,3), DIN numeric(15,4), SZ numeric(15,2), RN numeric(15,0), MIN numeric(15,3), MAX numeric(15,3), DATE datetime, DOP numeric(15,2)/*,*//*column_definition*/)
set nocount off

******************************************************************
insert into #MyTableOsn values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?/*,*//*?*/)

рс.ВыполнитьSQL_ИзТЗ(ТЗ,100);
{C:\1SBASES\COPYS\USR36\УЛОЖИТЬ В БАЗУ.ERT(85)}: Произошла ошибка при выполнении запроса.
 State 22008, native 0, message [Microsoft][ODBC SQL Server Driver]Datetime field overflow 

  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #24 - 01. Марта 2010 :: 09:22
Печать  
какие параметры метода ДобПараметр() для поля "дата"?
  

1&&2&&3
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #25 - 01. Марта 2010 :: 09:26
Печать  
trad писал(а) 01. Марта 2010 :: 09:22:
какие параметры метода ДобПараметр() для поля "дата"?

Код
Выбрать все
SQL_Тип="datetime";
рс.ДобПараметр(1,10,8,0); 

  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #26 - 01. Марта 2010 :: 09:57
Печать  
проверь есть ли в ТЗ даты менее '01.01.1753'
  

1&&2&&3
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #27 - 01. Марта 2010 :: 10:00
Печать  
У меня дата представлена в виде "ДД.ММ.ГГ", в одинэсовском формате. Самая маленькая - "01.03.10", т.е. сегодня
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #28 - 01. Марта 2010 :: 10:35
Печать  
у меня более нет предложений Печаль
  

1&&2&&3
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #29 - 01. Марта 2010 :: 10:54
Печать  
(0) не называй поля таблицы служебными названиями min  max

преобразовывать к datetime  надо так(такой строкой)
('20100228' as datetime )

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #30 - 01. Марта 2010 :: 11:06
Печать  
Z1 писал(а) 01. Марта 2010 :: 10:54:
преобразовывать к datetime  надо так(такой строкой)
('20100228' as datetime )


Как это использовать в моем запросе?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #31 - 01. Марта 2010 :: 12:26
Печать  
al_zzz писал(а) 01. Марта 2010 :: 11:06:
Z1 писал(а) 01. Марта 2010 :: 10:54:
преобразовывать к datetime  надо так(такой строкой)
('20100228' as datetime )


Как это использовать в моем запросе?

нужный тип колонки строка
а строка приведенного выше вида.

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #32 - 02. Марта 2010 :: 03:45
Печать  
Спасибо, с датой всё получилось!
Теперь как мне с таблицей быть, если я создаю не в tempdb, а в отдельной базе.  Пока при повторном уложении таблицы в базу выдает:
Код
Выбрать все
set nocount on
if exists (select * from uz..sysobjects where id=object_id('uz..#MyTableOsn') and sysstat & 0xf = 3 )
  drop table #MyTableOsn;
create table #MyTableOsn (KOD char(9), MANAGER char(25), CITY char(20), POST char(9), SROK numeric(3,0), ABC char(9), XYZ char(9), OST numeric(15,3), DIN numeric(15,4),
SZ numeric(15,2), RN numeric(15,0), MIN numeric(15,3), MAX numeric(15,3), DOP numeric(15,2), DEN char(8)/*,*//*column_definition*/)
set nocount off

******************************************************************
insert into #MyTableOsn values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?/*,*//*?*/)

Ошибка:
рс_.ВыполнитьИнструкцию(СтрЗаменить(ТекстЗапроса,"%Имя%",ИмяТаб));
{C:\1SBASES\COPYS\USR36\УЛОЖИТЬ В БАЗУ.ERT(86)}: State 42S01, native 2714, message [Microsoft][ODBC SQL Server Driver][SQL Server]There is already an object named '#MyTableOsn' in the database. 

  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #33 - 02. Марта 2010 :: 05:25
Печать  
al_zzz писал(а) 02. Марта 2010 :: 03:45:
Спасибо, с датой всё получилось!
Теперь как мне с таблицей быть, если я создаю не в tempdb, а в отдельной базе.  Пока при повторном уложении таблицы в базу выдает:
Код
Выбрать все
set nocount on
if exists (select * from uz..sysobjects where id=object_id('uz..#MyTableOsn') and sysstat & 0xf = 3 )
  drop table #MyTableOsn;
create table #MyTableOsn (KOD char(9), MANAGER char(25), CITY char(20), POST char(9), SROK numeric(3,0), ABC char(9), XYZ char(9), OST numeric(15,3), DIN numeric(15,4),
SZ numeric(15,2), RN numeric(15,0), MIN numeric(15,3), MAX numeric(15,3), DOP numeric(15,2), DEN char(8)/*,*//*column_definition*/)
set nocount off

******************************************************************
insert into #MyTableOsn values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?/*,*//*?*/)    

Ошибка:
рс_.ВыполнитьИнструкцию(СтрЗаменить(ТекстЗапроса,"%Имя%",ИмяТаб));
{C:\1SBASES\COPYS\USR36\УЛОЖИТЬ В БАЗУ.ERT(86)}: State 42S01, native 2714, message [Microsoft][ODBC SQL Server Driver][SQL Server]There is already an object named '#MyTableOsn' in the database. 




В Вашем примере врем таблица не удалилась и далее
она не может создаться заново.

Так может при повторном обращении проще сделать
delete  #MyTableOsn

Не называйте поля в таблицах зарезервированными идинтефикаторами ( MIN MAX )

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



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #34 - 02. Марта 2010 :: 05:42
Печать  
object_id('uz..MyTableOsn')
drop table uz..MyTableOsn;
create table uz..MyTableOsn
insert into uz..MyTableOsn
  

1&&2&&3
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #35 - 02. Марта 2010 :: 11:10
Печать  
Код
Выбрать все
object_id('uz..MyTab2')
drop table uz..MyTab2

Ошибка:
рс.ВыполнитьИнструкцию(СтрЗаменить(ТекстЗапроса,"%Имя%",СокрЛП(Таблица)));
{C:\1SBASES\COPYS\USR36\УЛОЖИТЬ В БАЗУ.ERT(253)}: State 42000, native 170, message [Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near 'uz..MyTab2'. 


Что я неправильно сделал?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #36 - 02. Марта 2010 :: 13:29
Печать  
al_zzz писал(а) 02. Марта 2010 :: 11:10:
Код
Выбрать все
object_id('uz..MyTab2')
drop table uz..MyTab2

Ошибка:
рс.ВыполнитьИнструкцию(СтрЗаменить(ТекстЗапроса,"%Имя%",СокрЛП(Таблица)));
{C:\1SBASES\COPYS\USR36\УЛОЖИТЬ В БАЗУ.ERT(253)}: State 42000, native 170, message [Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near 'uz..MyTab2'. 


Что я неправильно сделал?

как что не задали от чьего имени Вы обращаетесь
и непонятно если Вы создавали таблицу
#MyTableOsn
то почему удаляете как uz..MyTab2
надо и удалять таблицу #MyTableOsn
как отображает  ms sql  пседвдомена временных таблиц на реальные имена
это дело самого ms sql а не ваше

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #37 - 03. Марта 2010 :: 02:52
Печать  
Z1 писал(а) 02. Марта 2010 :: 13:29:
как что не задали от чьего имени Вы обращаетесь
и непонятно если Вы создавали таблицу
#MyTableOsn
то почему удаляете как uz..MyTab2
надо и удалять таблицу #MyTableOsn
как отображает  ms sql  пседвдомена временных таблиц на реальные имена
это дело самого ms sql а не ваше


Имя таблицы не принципиально. Если я использую #MyTableOsn, результат тот же.
Подскажите пожалуйста, как мне от имени обратиться. А ещё лучше какой-нибудь простой пример выложите или киньте ссылку...
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #38 - 03. Марта 2010 :: 05:27
Печать  
al_zzz писал(а) 03. Марта 2010 :: 02:52:
Z1 писал(а) 02. Марта 2010 :: 13:29:
как что не задали от чьего имени Вы обращаетесь
и непонятно если Вы создавали таблицу
#MyTableOsn
то почему удаляете как uz..MyTab2
надо и удалять таблицу #MyTableOsn
как отображает  ms sql  пседвдомена временных таблиц на реальные имена
это дело самого ms sql а не ваше


Имя таблицы не принципиально. Если я использую #MyTableOsn, результат тот же.
Подскажите пожалуйста, как мне от имени обратиться. А ещё лучше какой-нибудь простой пример выложите или киньте ссылку...

select object_id('Имя')  пример  select object_id('SC13')
Если объект ( не обязательно таблица ) Имя существует то вернеться его id если не существует то NULL
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #39 - 05. Марта 2010 :: 08:02
Печать  
Z1 писал(а) 03. Марта 2010 :: 05:27:
...не задали от чьего имени Вы обращаетесь...
Как обратиться от имени?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #40 - 05. Марта 2010 :: 08:15
Печать  
Может тебе реальный пример(работающий) поможет

Код
Выбрать все
// Создаем во временной таблице структуру складов
			ТекстЗапроса = "
			|CREATE TABLE #xxx_sc31_prib (
			|ID CHAR(9)  NOT NULL,
			|PARENTID CHAR(9)  NOT NULL,
			|CONSTRAINT PK0_X_xxx_prov_registr  PRIMARY KEY (ID,PARENTID)
			|)" ;
    
	Попытка
 		rc1.ВыполнитьСкалярный(ТекстЗапроса);
 	Исключение
		Сообщить("Ошибка не удалось создать таблицу  #xxx_sc31_prib !!!");
 	КонецПопытки;

	Попытка
	 	rc1.ВыполнитьСкалярный("delete from #xxx_sc31_prib");
 	Исключение
		Сообщить("Ошибка не удалось очистить  таблицу  #xxx_sc31_prib  Результат может быть неправильным Все остановили!!!");
		return;
 	КонецПопытки;

	Попытка
 	rc1.ВыполнитьСкалярный(" insert into #xxx_sc31_prib(ID,PARENTID )  select ID,PARENTID from sc31(nolock)");
 	Исключение
		Сообщить("Ошибка не удалось создать структуру складов в бд tetrad(#xxx_sc31_prib)  Результат может быть неправильным Все остановили!!!");
		return;
 	КонецПопытки;

 	ТЗ000 = rc1.ВыполнитьИнструкцию("select * from #xxx_sc31_prib");

.................................
.................................
.................................


	Попытка
 		rc1.ВыполнитьСкалярный("drop table #xxx_sc31_prib");
 	Исключение
		Сообщить("Ошибка не удалось удалить таблицу  #xxx_sc31_prib !!!");
 	КонецПопытки;


 

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #41 - 05. Марта 2010 :: 09:18
Печать  
Z1 писал(а) 05. Марта 2010 :: 08:15:
Может тебе реальный пример(работающий) поможет


Это понятно, но мне важно, чтобы создавать, изменять и удалять таблицы в конкретной базе(не текущей и не служебной). Пока у меня получается всё кроме удаления таблицы из созданной специально для этого базы
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #42 - 10. Марта 2010 :: 12:05
Печать  
Так как я хотел, т.е. создавать и удалять таблицы в отдельной базе у меня получилось с помощью запроса:
Код
Выбрать все
use uz
set nocount on
if exists (select * from uz..sysobjects where id=object_id('uz..Osn') and sysstat & 0xf = 3 )
  drop table uz..Osn;
create table Osn (KOD char(9), MANAGER char(25), CITY char(20), POST char(9), SROK numeric(3,0), ABC char(9), XYZ char(9), OST numeric(15,3), DIN numeric(15,4), SZ numeric(15,2), RN numeric(15,0), MIN_ numeric(15,3), MAX_ numeric(15,3), DATE char(8), DOP numeric(15,2)/*,*//*column_definition*/)
set nocount off

******************************************************************
insert into Osn values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?/*,*//*?*/) 


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

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #43 - 10. Марта 2010 :: 12:08
Печать  
С:\Падает.bmp
  

_______003.bmp ( 223 KB | Загрузки )
_______003.bmp

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Запрос из таблицы значений
Ответ #44 - 10. Марта 2010 :: 12:33
Печать  
это выполняется в родном 1совском соединении? тогда нужно контекст базы поменять обратно на родную.
А еще лучше без use:
create table uz.dbo.Osn (...)
insert into uz.dbo.Osn ...

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #45 - 11. Марта 2010 :: 09:08
Печать  
Спасибо! Всё получилось!
Вот ещё хочу вам один вопрос задать.
Всё вот это с перекладыванием таблиц в sql затеял для того, чтобы увеличить скорость получения данных(используется обработка заказов поставщику, в которой менеджеры хотят видеть: продажи за месяц; текущие остатки, цены и нормы по магазинам; продажи, сезонность, план продаж по месяцам за год, цены прайсов от поставщиков) некоторые данные получаю прямыми запросами, другие берутся из предварительно рассчитанных dbf таблиц по каждой позиции номенклатуры в табличном поле. За счет получения большого объема данных при "листании" позиций происходит замедление прорисовки ТП.
Так вот, хотел увеличить скорость получения данных за счет получения данных из базы SQL вместо dbf. Когда всё сделал, то замер производительности показал, что метод "ВыполнитьИнструкцию()" работает в 10 раз медленнее, чем
Код
Выбрать все
ДБФ.ОткрытьФайл(...);
ДБФ.Ключ....
ДБФ.НайтиПоКлючу()
 


Текст запроса элементарный:
Код
Выбрать все
 select *
 from uz..Osn_
 Where
 (Kod = '202230202')
 


Так и должно быть? Получение данных из dbf "быстрее", чем получение данных из sql?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #46 - 11. Марта 2010 :: 09:11
Печать  
индекс по полю Kod есть?

ps
в десять раз медленне работать не должно, но и что будет быстрее тоже - не факт
  

1&&2&&3
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #47 - 11. Марта 2010 :: 09:46
Печать  
trad писал(а) 11. Марта 2010 :: 09:11:
индекс по полю Kod есть?

ps
в десять раз медленне работать не должно, но и что будет быстрее тоже - не факт

Текст запроса укладки таблицы в sql:
Код
Выбрать все
use uz
set nocount on
if exists (select * from uz..sysobjects where id=object_id('uz..Osn_') and sysstat & 0xf = 3 )
  drop table uz..Osn_;
create table Osn_ (KOD char(9) PRIMARY KEY , MANAGER char(25), CITY char(20), POST char(9), SROK numeric(3,0), ABC char(9), XYZ char(9), OST numeric(15,3), DIN numeric(15,4), SZ numeric(15,2), RN numeric(15,0), MIN numeric(15,3), MAX numeric(15,3), DATE char(8), DOP numeric(15,2)/*,*//*column_definition*/)
set nocount off 


PRIMARY KEY - как я понимаю это будет индексом и за счет него должна увеличиться производительность?
Поиск по индексу осуществляется так же условием или как-то по-другому?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #48 - 11. Марта 2010 :: 10:09
Печать  
1) да.
2) в данном случае так же.
  

1&&2&&3
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #49 - 11. Марта 2010 :: 10:13
Печать  
С индексом ускорилось, но всё равно в два раза медленнее, чем получение тех же данных из dbf. Печаль
Подумаю над оптимизацией остальных запросов...
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #50 - 11. Марта 2010 :: 10:23
Печать  
al_zzz писал(а) 11. Марта 2010 :: 10:13:
С индексом ускорилось, но всё равно в два раза медленнее, чем получение тех же данных из dbf. Печаль
вот это более реально
  

1&&2&&3
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #51 - 11. Марта 2010 :: 11:53
Печать  
вместо RN numeric(15,0)  можно использовать int
аналогично numeric(3,0)
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #52 - 11. Марта 2010 :: 11:55
Печать  
зачем таблицу заводить в другой бд ?
в твоем случае будет гораздо лучше создать таблицу в "родной" бд.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #53 - 11. Марта 2010 :: 11:55
Печать  
al_zzz писал(а) 11. Марта 2010 :: 10:13:
С индексом ускорилось, но всё равно в два раза медленнее, чем получение тех же данных из dbf. Печаль
Подумаю над оптимизацией остальных запросов...

хоть запрос и примитивный все равно лучше покажи запрос полностью.
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #54 - 11. Марта 2010 :: 11:56
Печать  
Z1 писал(а) 11. Марта 2010 :: 11:55:
зачем таблицу заводить в другой бд ?
в твоем случае будет гораздо лучше создать таблицу в "родной" бд.

А вреда никакого от этого не будет?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #55 - 11. Марта 2010 :: 11:57
Печать  
Z1 писал(а) 11. Марта 2010 :: 11:55:
al_zzz писал(а) 11. Марта 2010 :: 10:13:
С индексом ускорилось, но всё равно в два раза медленнее, чем получение тех же данных из dbf. Печаль
Подумаю над оптимизацией остальных запросов...

хоть запрос и примитивный все равно лучше покажи запрос полностью.

В Ответ #45  приведен запрос полностью
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #56 - 11. Марта 2010 :: 12:00
Печать  
al_zzz писал(а) 11. Марта 2010 :: 11:57:
Z1 писал(а) 11. Марта 2010 :: 11:55:
al_zzz писал(а) 11. Марта 2010 :: 10:13:
С индексом ускорилось, но всё равно в два раза медленнее, чем получение тех же данных из dbf. Печаль
Подумаю над оптимизацией остальных запросов...

хоть запрос и примитивный все равно лучше покажи запрос полностью.

В Ответ #45  приведен запрос полностью


добавь  хинт (nolock)

Разве тебе не нужна типизация результата ?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #57 - 11. Марта 2010 :: 12:02
Печать  
al_zzz писал(а) 11. Марта 2010 :: 11:56:
Z1 писал(а) 11. Марта 2010 :: 11:55:
зачем таблицу заводить в другой бд ?
в твоем случае будет гораздо лучше создать таблицу в "родной" бд.

А вреда никакого от этого не будет?

Я использую. Вреда нет.
Чужие таблицы 1с не трогает.
При добавление(удалении) полей 1с создает временные таблицы в родной бд но имена их экзотические вряд ли ты их так назовешь.
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #58 - 11. Марта 2010 :: 12:03
Печать  
Цитата:
Разве тебе не нужна типизация результата ?

Нет, не нужна
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #59 - 11. Марта 2010 :: 12:07
Печать  
Z1 писал(а) 11. Марта 2010 :: 11:55:
зачем таблицу заводить в другой бд ?
в твоем случае будет гораздо лучше создать таблицу в "родной" бд.

А от создания в родной скорость получения данных вырастет?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос из таблицы значений
Ответ #60 - 11. Марта 2010 :: 12:22
Печать  
al_zzz писал(а) 11. Марта 2010 :: 12:07:
Z1 писал(а) 11. Марта 2010 :: 11:55:
зачем таблицу заводить в другой бд ?
в твоем случае будет гораздо лучше создать таблицу в "родной" бд.

А от создания в родной скорость получения данных вырастет?

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

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