Изменения сортировки NLS для Windows 7 - PullRequest
1 голос
/ 17 июня 2009

Согласно этой статье , в Windows 7 будут изменения сортировки NLS, которые могут повлиять на определенные приложения.

Я пытаюсь выяснить, будут ли изменения в сортировке NLS затрагивать приложение, над которым я работаю. Я выполнил поиск по msdn и определил список функций сортировки NLS:

CompareString
CompareStringEx
CompareStringOrdinal
LCMapString
LCMapStringEx
LCMapStringEx
FindNLSString
FindNLSStringEx
FindStringOrdinal

Я искал кодовую базу моего приложения, и оно не использует ни одну из вышеуказанных функций. Достаточно ли этого, чтобы предположить, что изменения в сортировке NLS не повлияют на мое приложение?

В приведенной выше статье говорится, что средство диагностики устойчивости сортировки, включенное в набор средств для обеспечения совместимости приложений, можно использовать для проверки защищенности вашего приложения от изменений NLS. Я загрузил набор средств для обеспечения совместимости приложений, но мне не удалось найти в нем инструмент диагностики устойчивости к сортировке.

1 Ответ

2 голосов
/ 17 июня 2009

Нет, потому что многие API в конечном итоге скрывают тот факт, что они вызывают эти API внутри страны.

Реальная вещь, о которой вам следует беспокоиться при работе с NLS, - это если вы работаете с приложением, похожим на базу данных, в котором хранятся индексы данных, основанные на порядке сортировки. Большая опасность в следующем сценарии:

  1. База данных строит индексы в Vista, использует порядок сортировки Vista
  2. Вы обновляетесь до Win7, но сохраняете данные
  3. Вы делаете поиск или добавляете запись, но используете порядок сортировки в Win7
  4. База данных повреждена / возвращает странные результаты

Однако есть надежда - вы можете использовать API GetNLSVersion, чтобы определить, перестраивать ваши индексы или нет; когда вы строите индексы, также кэшируйте версию, против которой вы их создали. При запуске, если вы видите, что версия отличается (да, это редко, но возможно, что число может уменьшиться!), Отбросьте индексы и перестройте их.

Редактировать: Если вы используете производственную базу данных, такую ​​как SQL Server или MySQL, они обрабатывают все это за кулисами, поэтому не беспокойтесь, если вы просто запрашиваете эти базы данных. 1021 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...