Переключение на Главную Страницу Страницы: 1 2 [3] 4 5  ОтправитьПечать
Очень популярная тема (более 25 ответов) Запрос из таблицы значений (число прочтений - 13016 )
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
На связи



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 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 записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 4 5 
ОтправитьПечать