Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема ODBC и Excel (число прочтений - 4089 )
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
ODBC и Excel
18. Февраля 2011 :: 04:37
Печать  
Пытаюсь использовать материал из http://www.1cpp.ru/forum/YaBB.pl?num=1163586032.
Текст модуля:
Код
Выбрать все
Процедура Сформировать()
    _база =СоздатьОбъект("ODBCDatabase");
	Если _база.Соединение("DRIVER=Microsoft Excel Driver (*.xls); DBQ=" +Каталог+Файл) =0 Тогда
		Предупреждение("Ошибка открытия файла", 60);
		Возврат;
	КонецЕсли;

	_рс =СоздатьОбъект("ODBCRecordSet");
	_рс.УстБД(_база);

	_стр ="
	|select *
	|from [List$A0:AZ]
	|";

	_ит =СоздатьОбъект("ИндексированнаяТаблица");
	ит = _рс.ВыполнитьИнструкцию(_стр, _ит);
	ит.Показать();
    //ПТ = СоздатьОбъект("ПоказТаблиц");
    //ПТ.Показать(ит);
КонецПроцедуры 


Соединение с базой проходит нормально.
На Windows server 2003 отрабатывается нормально, в ХР выдает ошибку:
Код
Выбрать все
{H:\DROPBOX\DROPBOX\1С\ЗАГРУЗКА ИЗ EXCEL.ERT(19)}: State 42S02, native 4294965991, message [Microsoft][Драйвер ODBC Excel] Объект 'List_1c_type_A0:AZ' не найден ядром базы данных Microsoft Jet.  Проверьте существование объекта и правильность имени и пути. 


Я так понимаю, что на ХР он $ понимает как директиву парсить.
Помогите разобраться.
  

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


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: ODBC и Excel
Ответ #1 - 18. Февраля 2011 :: 05:59
Печать  
Не на XP, а на 1с++.
Я с этим обжигался при работе с FireBird'ом ... там все системные таблицы с баксом внутри имени.
Баксы любит метапарсер...
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: ODBC и Excel
Ответ #2 - 18. Февраля 2011 :: 06:23
Печать  
если нужно обойти метапарсер, то делай так:

|from [List@A0:AZ]

потом так:

МД = СоздатьОбъект("MetaDataWork");
ТекстЗапроса=МД.ОбрМетаСКЛ(ТекстЗапроса);
ТекстЗапроса=СтрЗаменить(ТекстЗапроса,"@","$");

ну и дальше выполняй запрос..

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: ODBC и Excel
Ответ #3 - 18. Февраля 2011 :: 06:25
Печать  
Dmitry The Wing писал(а) 18. Февраля 2011 :: 05:59:
Не на XP, а на 1с++.
Я с этим обжигался при работе с FireBird'ом ... там все системные таблицы с баксом внутри имени.
Баксы любит метапарсер...

Тогда вам вопрос на засыпку: почему в среде Windows server 2003, 1с++ (ver 3.0.1.26) данная процедура выполняется на ура, а  в среде Windows ХР SP3, 1с++ (ver 3.0.1.26) данная процедура лажает(ошибка указана)?
  

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ODBC и Excel
Ответ #4 - 18. Февраля 2011 :: 07:00
Печать  
Eprst писал(а) 18. Февраля 2011 :: 06:23:
если нужно обойти метапарсер, то делай так:

|from [List@A0:AZ]

потом так:

МД = СоздатьОбъект("MetaDataWork");
ТекстЗапроса=МД.ОбрМетаСКЛ(ТекстЗапроса);
ТекстЗапроса=СтрЗаменить(ТекстЗапроса,"@","$");

ну и дальше выполняй запрос..


Кидай в FAQ!
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: ODBC и Excel
Ответ #5 - 18. Февраля 2011 :: 08:29
Печать  
Уважаемый!
А у вас база случаем не DBF?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ODBC и Excel
Ответ #6 - 18. Февраля 2011 :: 09:18
Печать  
А в данном случае есть разница?
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: ODBC и Excel
Ответ #7 - 18. Февраля 2011 :: 10:47
Печать  
varelchik писал(а) 18. Февраля 2011 :: 08:29:
Уважаемый!
А у вас база случаем не DBF?

У меня всякие. Улыбка
Пробовал на разных.
  

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: ODBC и Excel
Ответ #8 - 06. Марта 2011 :: 06:10
Печать  
Eprst писал(а) 18. Февраля 2011 :: 06:23:
если нужно обойти метапарсер, то делай так:

|from [List@A0:AZ]

потом так:

МД = СоздатьОбъект("MetaDataWork");
ТекстЗапроса=МД.ОбрМетаСКЛ(ТекстЗапроса);
ТекстЗапроса=СтрЗаменить(ТекстЗапроса,"@","$");

ну и дальше выполняй запрос..


А как выполнить запрос с отключенным парсером в ДБФ-ной базе? Печаль
  

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