Неправильно строится ключ файла DBF
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1412
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
Неправильно строится ключ файла DBF
Столкнулся с чем-то непонятным: неправильно индексируется файл если указать LOCALE (любую, даже WINDOWS)
Ключ по текстовому полю длиной 4 символа
К примеру записи 04p5, 04p6, 04p7 идут по порядку, а 04p8, 04p9 где-то ближе к концу индексного файла, соответственно SET по значению 04p8 не работает как надо, запись не находит
Версия 6.300.9059
Что делать?
Ключ по текстовому полю длиной 4 символа
К примеру записи 04p5, 04p6, 04p7 идут по порядку, а 04p8, 04p9 где-то ближе к концу индексного файла, соответственно SET по значению 04p8 не работает как надо, запись не находит
Версия 6.300.9059
Что делать?
- Вложения
-
- testproject.zip
- (34.42 КБ) 206 скачиваний
Неправильно строится ключ файла DBF
может стоит проверить что в строке: "p" латинская или "р" русская?
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1412
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
Неправильно строится ключ файла DBF
Латинская там везде... (или русская везде, не помню)
Таким способом учетка "Парус" кодирует уникальные поля, регистрозависимое 4-х символьное поле, во всех таблицах такое, соответственно для получения данных надо с этими полями работать
Я обошел в итоге эту непонятку, сбросив в пустую строку CLACOLSEQ, после чего стало все работать. Почему же при любой CLACOLSEQ ключ строится неправильно, так и осталось загадкой. Наверное, глюк драйвера
Таким способом учетка "Парус" кодирует уникальные поля, регистрозависимое 4-х символьное поле, во всех таблицах такое, соответственно для получения данных надо с этими полями работать
Я обошел в итоге эту непонятку, сбросив в пустую строку CLACOLSEQ, после чего стало все работать. Почему же при любой CLACOLSEQ ключ строится неправильно, так и осталось загадкой. Наверное, глюк драйвера
-
- ✯ Ветеран ✯
- Сообщения: 1040
- Зарегистрирован: 08 Июль 2005, 6:48
- Откуда: Россия
- Поблагодарили: 1 раз
Неправильно строится ключ файла DBF
RBM_K KEY(+GOO:DOCS_RN),DUP ?RaFaeL писал(а): Латинская там везде... (или русская везде, не помню)
Таким способом учетка "Парус" кодирует уникальные поля, регистрозависимое 4-х символьное поле, во всех таблицах такое, соответственно для получения данных надо с этими полями работать
Я обошел в итоге эту непонятку, сбросив в пустую строку CLACOLSEQ, после чего стало все работать. Почему же при любой CLACOLSEQ ключ строится неправильно, так и осталось загадкой. Наверное, глюк драйвера
-
- ✯ Ветеран ✯
- Сообщения: 1040
- Зарегистрирован: 08 Июль 2005, 6:48
- Откуда: Россия
- Поблагодарили: 1 раз
Неправильно строится ключ файла DBF
у вас в коде
Код: Выделить всё
GOODSPEC FILE,DRIVER('dBase4'),OEM,NAME('GOODSPEC.DBF'),PRE(GOO),BINDABLE,THREAD
RBM_K KEY(GOO:DOCS_RN),DUP
Record RECORD,PRE()
DOCS_RN STRING(4)
END
END
RBM_K KEY(+GOO:DOCS_RN),DUP ?
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1412
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
Неправильно строится ключ файла DBF
А
Ну вообще говоря это одно и то же. В рабочем проекте с плюсом, никакой разницы
Ну вообще говоря это одно и то же. В рабочем проекте с плюсом, никакой разницы
-
- ✯ Ветеран ✯
- Сообщения: 1040
- Зарегистрирован: 08 Июль 2005, 6:48
- Откуда: Россия
- Поблагодарили: 1 раз
Неправильно строится ключ файла DBF
ну ещё и OEM забыт - в рабочем проекте?RaFaeL писал(а):А
Ну вообще говоря это одно и то же. В рабочем проекте с плюсом, никакой разницы
-
- ✯ Ветеран ✯
- Сообщения: 1040
- Зарегистрирован: 08 Июль 2005, 6:48
- Откуда: Россия
- Поблагодарили: 1 раз
Неправильно строится ключ файла DBF
тогда все должно быть отсортировано, если указано RBM_K KEY(+GOO:DOCS_RN) и OEM
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1412
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
-
- ✯ Ветеран ✯
- Сообщения: 1040
- Зарегистрирован: 08 Июль 2005, 6:48
- Откуда: Россия
- Поблагодарили: 1 раз
Неправильно строится ключ файла DBF
ну я так понимаю так и должно быть - "читать и писать файлы следует, всегда используя одну и ту же последовательность сортировки", а если используется "значение WINDOWS, то последовательность сортировки, используемая по умолчанию, определяется установкой страны в Windows. Если эта переменная в файле установок среды опущена, то по умолчанию используется последовательность сортировки в стандарте ANSI", ну а т.к. стоит OEM - видимо берется набор символов OEM ASCII, в котором и писался файл в Парусе?RaFaeL писал(а):Латинская там везде... (или русская везде, не помню)
Таким способом учетка "Парус" кодирует уникальные поля, регистрозависимое 4-х символьное поле, во всех таблицах такое, соответственно для получения данных надо с этими полями работать
Я обошел в итоге эту непонятку, сбросив в пустую строку CLACOLSEQ, после чего стало все работать. Почему же при любой CLACOLSEQ ключ строится неправильно, так и осталось загадкой. Наверное, глюк драйвера
Вообщем все как в доке - если файл совместим с DOS, то указываем OEM, в "противном случае задавайте значение WINDOWS или опустите эту переменную".
Неправильно строится ключ файла DBF
BUILD() как раз и лечит эту проблему. Здесь всё хорошо.
Поиграл с представленной программой. С 04P5, 04P6, 04P7, 04P8, 04P9 проблем с сортировкой не заметил.
Дальше чуть поинтереснее.
1. Если CLACOLSEQ вообще не указан, то берётся сортировка ANSI. Здесь Ал совершенно прав. Заглянем внутрь ndx-файла:
Код: Выделить всё
04P0 pN 04P1 qN 04P2 rN 04P3 sN 04P4 tN 04P5 uN 04P6 vN 04P7 wN 04P7 xN 04P8 yN 04P9 zN 04PA {N 04PB |N 04PC }N 04PD ~N 04PD N 04PE АN 04PF БN 04PG ВN 04PH ГN 04PH ДN
...
04PZ иN 04PZ йN 04Pa кN 04Pb лN 04Pc мN 04Pd нN 04Pe оN 04Pf пN 04Pg ░N
Код: Выделить всё
04P0 pN 04P1 qN 04P2 rN 04P3 sN 04P4 tN 04P5 uN 04P6 vN 04P7 wN 04P7 xN 04P8 yN 04P9 ©N 04Pa zN 04PA ЄN 04Pb {N 04PB «N 04Pc |N 04PC ¬N 04Pd }N 04PD ~N 04PD N 04Pe N 04PE ®N 04Pf ЂN 04PF ЇN 04Pg ЃN 04PG °N 04Ph ‚N 04PH ѓN 04PH ±N
Наконец рассмотрим CLACOLSEQ='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuWwXxYyZzАаБбВвГгДдЕеЁёЖжЭзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя'.
Код: Выделить всё
04P0 pN 04P1 qN 04P2 rN 04P3 sN 04P4 tN 04P5 uN 04P6 vN 04P7 wN 04P7 xN 04P8 yN 04P9 zN 04PA * ©N 04Pa {N 04PB ЄN 04Pb |N 04PC «N 04Pc }N 04PD ~N 04PD ¬N 04Pd N 04PE N 04Pe ЂN 04PF ®N 04Pf ЃN 04PG ЇN 04Pg ‚N 04PH ѓN 04PH °N 04Ph „N
Как-то так.
Последний раз редактировалось Shur 29 Январь 2016, 11:26, всего редактировалось 1 раз.
-
- ✯ Ветеран ✯
- Сообщения: 1040
- Зарегистрирован: 08 Июль 2005, 6:48
- Откуда: Россия
- Поблагодарили: 1 раз
Неправильно строится ключ файла DBF
ого, целое исследование!Shur писал(а):...Как-то так.
для каких версий операционных систем Windows и с какими региональными установками проверялось?
PS TC, по-моему, написал, что не сработал у него BUILD - при принудительной смене последовательности сортировки/кодировки в индексном файле строится последовательность отличная от исходной (т.е. при которой создавался файл с данными в Парусе)
, пока он не сбросит настройкинеправильно индексируется файл если указать LOCALE (любую, даже WINDOWS)
Я обошел в итоге эту непонятку, сбросив в пустую строку CLACOLSEQ, после чего стало все работать. Почему же при любой CLACOLSEQ ключ строится неправильно, так и осталось загадкой.
Неправильно строится ключ файла DBF
Ценное замечание. Тесты проводились под Win10, локализованной для русского языка.
Созданный в чём угодно DBF файл при перестроении индексов не трогается. Пересоздаются только индексы. И никого не волнует с каким CLACOLSEQ и с какой локализацией создавался файл данных.
Последовательность в индексном файле, естественно, зависит от CLACOLSEQ, чему и был посвящён мой предыдущий пост.