Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Collating Sequence Russian файла CDX воспринимается как Machine  [new]
kiruha
Member

Откуда:
Сообщений: 124
Имеется несколько файлов DBF и CDX из 1С
Порядок сортировки в CDX на 97% совпадает с Russian, кроме неиспользуемых символов
ҐґЃѓҐґЃѓЌќЌќ (проверено прямым сопоставлением)

Desiner таблиц показывает collate индексов Machine
IDXCOLLATE также возвращает Machine

Если я использую Russian - отключается оптимизация Rushmore
Если использую Machine - оптимизация используется, но некоторые запросы к полям
содержащие русские символы могут давать неверный результат, также insert приводит
к порче файлов CDX.

Как можно заставить FoxPro считать что в CDX collate Russian, а не Machine ?
Заголовок файлов менять не могу, так как они используются приложением 1С
30 апр 09, 02:01    [7131991]     Ответить | Цитировать Сообщить модератору
 Re: Collating Sequence Russian файла CDX воспринимается как Machine  [new]
pitermax
Member

Откуда:
Сообщений: 228
А может отказаться от прямого доступа к таблицам и использовать ole?
30 апр 09, 11:38    [7133293]     Ответить | Цитировать Сообщить модератору
 Re: Collating Sequence Russian файла CDX воспринимается как Machine  [new]
kiruha
Member

Откуда:
Сообщений: 124
pitermax,

Спасибо, но с точки зрения производительности - в 10-100 раз хуже.
30 апр 09, 12:16    [7133629]     Ответить | Цитировать Сообщить модератору
 Re: Collating Sequence Russian файла CDX воспринимается как Machine  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Что возвращают следующие функции

?CPDBF()
?CPCURRENT()
?Version()
?SYS(2019)

Пожалуйста, не используйте термины, если не понимаете их смысла. Лучше объясняйте своими словами, что в результате хотите получить. Считать CDX в таком-то Collation - это не результат. Это ваше представление о том, как можно решить некую задачу. Причем, судя по описанию, вы не понимаете того, что происходит.
30 апр 09, 14:45    [7134736]     Ответить | Цитировать Сообщить модератору
 Re: Collating Sequence Russian файла CDX воспринимается как Machine  [new]
kiruha
Member

Откуда:
Сообщений: 124
работа происходит через vfpoledb.dll

CPCURRENT() 1251
CPDBF() 0

SYS(2019) ''
Version() Microsoft OLE DB Provider for Visual FoxPro 09.00.0000.5815 for Windows
//
Заголовки менять не могу - файлы используются 1С

//
Пока вижу выход при INSERT использовать Russian
При SELECT - Machine, при необходимости результат в курсор
и менять COLLATE - как описано в документации
30 апр 09, 15:34    [7135018]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить