Статистика |
|
Онлайн всего: 9 Гостей: 9 Пользователей: 0 |
|
Изменение данных в Delphi 2 (BDE)
...из исходного кода VCL я обнаружил, что при назначении значения DB-полю, имеющему строковый тип, значение "проходит" через функцию ANSItoNative, что может привести к изменению (порче) ASCII-данных. Вот так...
Как 16-, так и 32-битные версии IDAPI.CFG устанавливаются с драйвером языка Paradox 'ascii'.
Я создал простое приложение, записывающее в db-поле значения ASCII в диапазоне 0-255 и затем проверяющее их на предмет появившихся различий..... различия между 16- и 32-битной версией не так велики... для примера... в первых 130 значениях получается следующее преобразование:
16-бит: 21->182 22->167 31->33 130->128 32-бит: 130->128 Очевидно достаточно просто "исправить" 32-битные приложения, чтобы добиться такого же результата, что и получаемые 16-битными приложениями, НО я не уверен что решив проблему на моем PC, я решу ее у остальных пользователей, поскольку могут отличаться установки, драйверы языка... и пр. После того как я проверил все возможные варианты, я составил таблицу и занес туда пять возможных значений, которые могут отличаться под Delphi2 и Delphi1:
Значение ASCII Delphi1 Delphi2 21 182 21 22 167 22 33 31 33 132 102 132 255 121 255
|
Категория: BDE | Добавил: Skinner (05.07.2008)
| Автор: Rob Edgar
|
Просмотров: 371
| Рейтинг: 0.0/0 |
|
|