Имя: Пароль:
1C
1С v8
ВнешниеИсточникиДанных + DBF (1C 7.7). Кирилица.
0 totparen
 
21.12.13
17:48
Ребята, помогите победить. Проблема с кодировкой.

Как я понимаю механизм ВИД работает с данными через драйвер ОДБЦ. Для описания таблиц в конфигураторе, мне было достаточно строки соединения "DBQ=C:\1C_BASES\БАЗА7;Driver={Driver do Microsoft dBase (*.dbf)};", но для выполнения запроса этот драйвер не пригоден - кодировка не та.

Пришлось поставить ОДБЦ драйвер ФоксПро (не поддерживаемый ныне, http://download.microsoft.com/download/vfoxodbcdriver/Install/6.1/W9XNT4/EN-US/VFPODBC.msi)

Кириллица отображается корректно, но при попытки сделать запрос с двойными левым соединением таблиц, как ругается "not a character expression". При использовании первого драйвера - запрос выполняется, но кодировка не та.

Помогите, люди добрые!
1 totparen
 
22.12.13
00:48
Строка подключения = "DSN=Visual FoxPro Database;UID=;;SourceDB=c:\1C_Bases\База7;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"

Запрос = "
ВЫБРАТЬ
    РегДвПродажи.DATE,
    РегДвПродажи.ИДТовара,
    РегДвПродажи.Количество,
    РегДвПродажи.ИДКонтрагента,
    РегДвПродажи.ИДСклада,
    СпрТовары.Наименование КАК Наименование1,
    СпрКонтрагенты.Наименование
ИЗ
    ВнешнийИсточникДанных.База2013.Таблица.РегДвПродажи КАК РегДвПродажи
        ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.База2013.Таблица.СпрТовары КАК СпрТовары
        ПО РегДвПродажи.ИДТовара = СпрТовары.ИД
        ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.База2013.Таблица.СпрКонтрагенты КАК СпрКонтрагенты
        ПО РегДвПродажи.ИДКонтрагента = СпрКонтрагенты.ИД
"


Если не соединять Товары или Контрагентов, то работает. Все три таблицы вместе выдает ошибку: Ошибка выполнения запроса
по причине:
Ошибка внешней базы данных:
ошибка при выполнении запроса
по причине:
Ошибка ODBC. SQLSTATE: S1000
Номер ошибки: 240
Описание: [Microsoft][ODBC Visual FoxPro Driver]Not a character expression.
2 totparen
 
22.12.13
12:00
Пробывал следующие строки подключения:

Driver={Microsoft Visual FoxPro Driver};UID=;;SourceDB=c:\1C_Bases\База7;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;

Driver={Microsoft dBase VFP Driver (*.dbf)};UID=;;SourceDB=c:\1C_Bases\База7;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;

Driver={Driver para o Microsoft Visual FoxPro};UID=;;SourceDB=c:\1C_Bases\База7;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;

DSN=Visual FoxPro Database;UID=;;SourceDB=c:\1C_Bases\База7;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;
3 totparen
 
22.12.13
12:08
Запрос работает на ура при строке подключения
"DBQ=C:\1C_BASES\БАЗА7;Driver={Driver do Microsoft dBase (*.dbf)};"

Если изменить параметр "DataCodePage" в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\xBase на значение отличное от OEM

Выпадает ошибка:

При значении "ANSI"

Ошибка ODBC. SQLSTATE: HY000
Номер ошибки: -5016
Описание: [Microsoft][Драйвер ODBC dBase] Зарезервированная ошибка (-5016); сообщение для данной ошибки отсутствует.

При любом другом (не валидном):
Ошибка ODBC. SQLSTATE: HY000
Номер ошибки: -5033
Описание: [Microsoft][Драйвер ODBC dBase] Недопустимое значение параметра в записи Excel в разделе Engines реестра Windows.


Ошибка, почему упоминается Ексель, на не КуБэйс зафиксина - http://support.microsoft.com/kb/201673/ru
4 totparen
 
22.12.13
12:14
Похоже победил. Добавил параметр "BDE" = 2 в ветку.