Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Чудеса с МетаПарсером (число прочтений - 1468 )
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Чудеса с МетаПарсером
07. Марта 2007 :: 07:20
Печать  
Есть две одинаковые базы, только разного формата dbf и SQL.
Есть обработка из которой я подключаюсь к Excel файлу.

База=СоздатьОбъект("ODBCDataBase");
СтрокаСоединения="Driver={Microsoft Excel Driver (*.xls)}; DriverId=790; Dbq="+ИмяФайла+"; DefaultDir=c:\temp;";
База.Соединение(СтрокаСоединения);
Запрос=СоздатьОбъект("ODBCRecordSet");
Запрос.УстБД(База);
Текст="
|select *
|from [Розница$] d";
лТЗ=Запрос.ВыполнитьИнструкцию(текст);
лТЗ.ВыбратьСтроку();

Так вот в базе формата SQL все работает нормально.
текст запроса вот такой:
select *
from [Розница$] d

А вот в dbf  выдает следующее:
select *
from [Розница_1c_type_] d

где траблы непойму.
  
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Чудеса с МетаПарсером
Ответ #1 - 07. Марта 2007 :: 08:14
Печать  
Парсер работает несколько по разному в зависимости от формата бд 1С.
В квадратных скобках могут быть записаны типизирующие псевдонимы полей. VFP драйвер не допускает наличие символа $ в псевдониме поля, поэтому если формат БД 1С дбф, парсер в квадратных скобках заменяет символ $ на строку _1c_type_ и ODBCRecordset ожидает псевдоним поля с этой подстрокой для того чтобы выполнить типизацию результата.
Неправильным поведением можно считать то, что этот режим парсера включается вне зависимости от используемого в данном подключени драйвера ODBC.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать