Суть проблемы.
Основой проблемы стало то, что компьютеры и микрочипы, прикладные программы и базы данных продолжают использовать двухзначное обозначение года, и 1-го января 2000 года эти устройства определят 00 не как 2000, а как 1900. Это может вызвать ряд сбоев в работе информационных систем.
Решение.
Во всех программных продуктах компании Centura “проблема 2000 года решена”. Проблемы могут возникнуть только в тех случаях, когда ваши приложения, написанные на SQLWindows или Centura Team Developer, и ваши базы данных, используемые в SQLBase, для хранения и ввода даты используют только последние две цифры. В этом случае сервер баз данных и средства разработки SQLWindows и CTD используют следующий механизм определения века по последним двум цифрам даты и текущего года, который называется ”Centura Century Default Mode”:
Centura Century Default Mode
|
||||
|
||||
|
|
|||
|
0-49* | Первые две цифры будут текущего века | Первые две цифры будут предыдущего века | |
50-99** | Первые две цифры будут следующего века | Первые две цифры будут текущего века | ||
* 1900 - 1949
** 1950 - 1999 |
Примечание: этот метод вычисления века применяется только в том случае, когда используется двухзначное описание года. |
Для версии 1.1.1 и выше стандартным механизмом определения века является Centura Century Default Mode. Это механизм работает для большинства стандартных ситуаций.
В том случае, когда этот механизм не работает, разработчик должен позаботиться о том, чтобы были введены все четыре цифры года. Такие случаи могут возникать, например, когда требуется указать дату рождения 1948 и в случае использования для ввода только двух последних цифр в начале XXI века, дата будет определена как 2048 год.
Примечание:
SELECT COUNT(*) FROM X WHERE InDate > '01-05-95'
сравнение даты будет производиться сервером, так как это описано ниже в разделе SQLBase. Если вы используете другой сервер отличный от SQLBase, смотрите документацию по проблеме 2000 года соответствующего производителя.
В случае использования переменных типа date и date/time дата будет конвертироваться в четырехзначный вид на стороне клиента, как это было указано выше, прежде чем запрос будет передан серверу для выполнения. Например:
SELECT COUNT(*) FROM X WHERE InDate > :dtQueryRange
Примечание: Century Default Mode реализован в версии 5.0.4, и в PTFs, начиная с 3 версии для SQLWindows 5.0.3.
Для включения режима используйте следующею команду в SQL.INI:
CENTURYDEFAULTMODE=1
Если это значение CENTURYDEFAULTMODE установлено в 1, сервер будет использовать Century Default Mode. При значении 0 сервер для определения первых двух цифр года будет использовать текущий век.
Примечание:
Приложения, написанные на SQLWindows или Centura Team Developer, которые
используют SQLNetwork или SQLHost, не требуют специальных изменений и проверки.
Эти продукты передают данные между клиентом и сервером без изменений.