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


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Пробелы в названии столбца
Ответ #15 - 14. Сентября 2011 :: 06:37
Печать  
Может я чего-то не допонял по теме, но колонки с пробелами в таблце SQL прекрасно работают. Вот пример:

Код
Выбрать все
рс = СоздатьОбъект("ODBCRecordset");

	//создадим таблицу
	ТекстЗапроса="
	|IF  NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TEST]') AND type in (N'U'))
	|CREATE TABLE [dbo].[TEST]
	|(
	|	[ID] [int] IDENTITY(1,1) NOT NULL,
	|	[FIRM] [varchar](4) NULL,
	|	[DOCKIND] [varchar](50) NULL,
	|	[DOCDATA] [datetime] NULL,
	|	[DOCNUM] [varchar](25) NULL,
	|	[КОЛОНКА С ПРОБЕЛАМИ] [varchar](250)
	|) ON [PRIMARY]";
	Если рс.Выполнить(ТекстЗапроса) = 0 Тогда
		ТекстОшибки=рс.ПолучитьОписаниеОшибки();
		Сообщить(ТекстОшибки);
		Возврат;
	КонецЕсли;

	//добавим значение
	ТекстЗапроса="
	|INSERT INTO [dbo].[TEST]
	|           ([FIRM]
	|           ,[DOCKIND]
	|           ,[DOCDATA]
	|           ,[DOCNUM]
	|           ,[КОЛОНКА С ПРОБЕЛАМИ])
	|     VALUES
	|           ('Фр1'
	|           ,'Документ1'
	|           ,'20010101'
	|           ,'ПП-12345'
	|           ,'Значение 1 в Колонке С ПРОБЕЛАМИ')";
	Если рс.Выполнить(ТекстЗапроса) = 0 Тогда
		ТекстОшибки=рс.ПолучитьОписаниеОшибки();
		Сообщить(ТекстОшибки);
		Возврат;
	КонецЕсли;

	//сделаем выборку
	ТекстЗапроса="
	|SELECT [ID]
	|      ,[FIRM]
	|      ,[DOCKIND]
	|      ,[DOCDATA]
	|      ,[DOCNUM]
	|      ,[КОЛОНКА С ПРОБЕЛАМИ]
	|  FROM [ArtPlastPlus].[dbo].[TEST]";
	тз = рс.ВыполнитьИнструкцию(ТекстЗапроса);
	тз.ВыбратьСтроку();

	//удалим таблицу
	ТекстЗапроса="
	|IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TEST]') AND type in (N'U'))
	|DROP TABLE [dbo].[TEST]
	|";
	Если рс.Выполнить(ТекстЗапроса) = 0 Тогда
		ТекстОшибки=рс.ПолучитьОписаниеОшибки();
		Сообщить(ТекстОшибки);
		Возврат;
	КонецЕсли;
 

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


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Пробелы в названии столбца
Ответ #16 - 14. Сентября 2011 :: 06:43
Печать  
И с условием тоже:
Код
Выбрать все
ТекстЗапроса="
	|SELECT [ID]
	|	,[FIRM]
	|	,[DOCKIND]
	|	,[DOCDATA]
	|	,[DOCNUM]
	|	,[КОЛОНКА С ПРОБЕЛАМИ]
	|  FROM [ArtPlastPlus].[dbo].[TEST] AS [TEST]
	|WHERE [TEST].[КОЛОНКА С ПРОБЕЛАМИ] = 'Значение 1 в Колонке С ПРОБЕЛАМИ' ";
 

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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Пробелы в названии столбца
Ответ #17 - 14. Сентября 2011 :: 08:59
Печать  
А теперь выполни этот запрос в дбф базе - поимеешь сабж.
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Пробелы в названии столбца
Ответ #18 - 14. Сентября 2011 :: 11:06
Печать  
Ага. Понял свою ошибку.Здесь используется "OLEDBData". Не заметил сразу.
Потому-что если использовать ODBCDataBase, то все нормально возвращаеться. Чоть из dbf-базы, хоть со скульной.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Пробелы в названии столбца
Ответ #19 - 14. Сентября 2011 :: 11:18
Печать  
zk96 писал(а) 14. Сентября 2011 :: 11:06:
. Чоть из dbf-базы, хоть со скульной.


Ну не проверял же, правда ?
Улыбка)
в дбф базе не работает.
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Пробелы в названии столбца
Ответ #20 - 14. Сентября 2011 :: 11:22
Печать  
Да проверил. И через OLEDBData тоже работает. Только что проверил.
У меня только строка соединения другая. А и скуль 2005.
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Пробелы в названии столбца
Ответ #21 - 14. Сентября 2011 :: 11:25
Печать  
Вот строка соединения:
Driver={SQL Native ;
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Пробелы в названии столбца
Ответ #22 - 14. Сентября 2011 :: 11:53
Печать  
вот с такой тока у меня соединяется:
"Driver={SQL "

и та же ошибка, что и у (0).

с Driver={SQL Native Client} не соединяется,
скуль 2008r2

+ ты свой запрос в какой базе запущал ?
В дбф-базе ? Или в SQL-базе ?
У меня в SQL-базе всё работает, а в дбф метапарсер пробел вырезает из имени столбца - это видно в отладке.

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


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Пробелы в названии столбца
Ответ #23 - 14. Сентября 2011 :: 12:05
Печать  
И там, и там. Сделал дбф-базу-чтобы проверить - работает.
У меня Microsoft SQL Server 2005 - 9.00.1399.06 (Service Pack 3)
Может что- то не так проверяю.Сделал базу, соединяюсь с ней из
дбф-версии. Создаю табличку с колонкой, имеющей в названии пробелы. Заполняю. Получаю результат с разными условиями в индексированную таблицу. Все работает.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Пробелы в названии столбца
Ответ #24 - 14. Сентября 2011 :: 12:18
Печать  
Ёпт.. проверил ТВОЙ код..

И понял, в чем у тебя ошибка - ты создаешь табличку с колонкой БЕЗ пробелов (точнее, метапарсер сам режет пробелы) и потом - так же получаешь значения в колонке без_пробелов.

Ты руктями табличку создай в самом скуле и запрос к ней потом.
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Пробелы в названии столбца
Ответ #25 - 14. Сентября 2011 :: 12:32
Печать  
Попробовал и нарвался.  Смущённый
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Пробелы в названии столбца
Ответ #26 - 14. Сентября 2011 :: 12:38
Печать  
Это явная бага метапарсера, причем, только в дбф базах.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Пробелы в названии столбца
Ответ #27 - 14. Сентября 2011 :: 12:50
Печать  
где то слышал звон
а обратные апострофы вместо [] не помогут - `имя с пробелом` ?
  

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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Пробелы в названии столбца
Ответ #28 - 14. Сентября 2011 :: 12:55
Печать  
trad писал(а) 14. Сентября 2011 :: 12:50:
где то слышал звон
а обратные апострофы вместо [] не помогут - `имя с пробелом` ?


State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около конструкции "`"
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Пробелы в названии столбца
Ответ #29 - 14. Сентября 2011 :: 13:43
Печать  
А через "ADODB.Connection" работает!!!
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 
ОтправитьПечать