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

"Начиная с определенного времени уже при проектировании Microsoft Office мы закладывали совместимость с 2000 годом. Весь Office 4, за исключением Access, готов к работе в новом тысячелетии. Полностью готовы и Office 95, и Office 97, - заверил Мэттью Прайс, менеджер группы разработки Microsoft Office.

И действительно, каждая программа в Office "совместима" с 2000 годом, только на свой манер, и в некоторых случаях в переработанных версиях каждого пакета предусматривается своя формула распознавания двузначных годов.

"Рассмотрим, к примеру, Microsoft Excel. Результат преобразования такого значения, как Feb. 29, будет зависеть от даты, взятой за точку преобразования в данной версии Excel, - пояснил Роберт Лефкович, консультант компании Next Era. - В текущей версии действительно получится February 2029.

В предыдущей это будет February 1929. Если же выполнять такое преобразование непосредственно в 2000 году, получится Feb. 29, 2000, поскольку Excel воспринимает этот год как високосный".

"Возможно, окажутся неверно преобразованными такие данные, как даты поставки; кроме того, если пользователь обратится с запросом о продажах за предыдущий месяц, программа извлечет не все записи. Некорректными окажутся и результаты расчетов сроков платежей по ценным бумагам, поскольку начиная с 2030 года даты будут интерпретироваться как 1930", - добавляет Стив Хаскелл, старший консультант компании Metamore Technologies, специализирующийся на вопросах 2000 года.

Остаются ошибки и в реализациях серверных приложений - в базе данных SQL Server, например, 2000 год не воспринимается как високосный.

Рэнди Хартвиг, старший разработчик компании Stockamp & Associates, опасается серьезных проблем, поскольку больницы, которые обслуживает его компания, используют Access на клиентах, Visual Basic в качестве промежуточного программного обеспечения, а их сервер развернут на SQL Server. По его мнению, система может начать выдавать "информацию" о пациентах, относящуюся ко времени, когда они еще не родились, и наоборот, считать датой рождения детей, появившихся на свет в 2000 году, год 1900-й.

Несмотря на это, в Microsoft считают свою задачу по решению проблемы 2000 года выполненной.

"Формат хранения дат в продукте в целом соответствует требованиям совместимости с 2000 годом, - утверждает Дуг Лиланд, ведущий менеджер Microsoft, отвечающий за SQL Server. - Проблемы не устранены только в некоторых второстепенных участках программ, в частности связанных с диспетчером задач в SQL 6.5, а также, поддержкой сроков окончания резервного копирования, поскольку 2000 год здесь не распознается как високосный".

Поделитесь материалом с коллегами и друзьями