Читаем НОСТАЛЬГИЧЕСКИЙ ДЕТЕКТИВ полностью

- Здравствуйте! Я – Валерий Сотников, администратор DB-LRE. Эрик мне звонил, что двое из полиции зайдут ко мне в офис. В чём же мы провинились перед органами правосудия? Я тут играюсь, тестирую одну занятную программку, мне её Борька оставил, когда уезжал домой. Борька Розин – это наш контрактник из Америки, он тут у нас раньше руководил разработкой проекта. Мы с ним дружили. Ну, раз уж вы пришли – проходите, будьте как дома. Я свои дела пока отложу, поработаем вместе, во всем разберёмся. Эрик мне сказал, что вы хотите какой-то потерянный контракт найти. Всё найдём, надёжность у нас самая высокая – система прошла тяжёлую опытную эксплуатацию, отработала отлично во всех режимах и запросах. Только одна проблема осталась: данные поступают факсом или мылом, а поэтому требуют ручного ввода. Такой ввод не может на 100% обеспечить защиту от ошибок оператора. Автоматизация ввода полностью защитит нас от ошибок. Жаль бабки этого года уже закончились, осталось ещё полгода продержаться, а потом мы обязательно купим в Штатах программу форматирования электронных сообщений в записи входа. Борька обещал купить и выслать нам софт, как только у нас деньги появятся. Что делать то нужно, господа? Какой у вас план? Какой контракт следует искать?


Тут Зита произвела царственный жест, позволяющий мне перехватить инициативу. Я объявил исходные данные поиска:


- В Земельной книге города Юрмалы контракт зарегистрирован под номером #AC-14397-2002 от 23 мая текущего года, продавец – Франц Ковальский, покупатель – Юрис Фридманис. Агент по продаже – Ивар Пирагс. Попытайся найти такую запись. Если допустить, что произошла ошибка оператора при вводе, то, скорее всего, ошибка могла случиться всего в одном поле данных, верно коллега?


Сотников открыл экран запросов и стал поочерёдно задавать своей системе варианты поиска по номеру контракта, по данным продавца, по фамилии покупателя и по фамилии агента. Безрезультатно! Запись с такими данными в DB-LRE отсутствовала.


- Валера, а сейчас введи только дату. Может быть, у вас информация за целый день потерялась…


- Нет, записей за 23 мая навалом, всего 34 выскочило по запросу.


- Значит, информация за весь день не пропала. Повтори теперь все предыдущие запросы, не задавая дату и только по части фамилии, например «Коваль», «Фрид».


- Ничего! Нужной записи нет! Выскочила какая-то старая запись по незавершённому контракту в феврале этого года – продавец Ковальский, а покупатель Плацис. Контракт был прерван по требованию продавца недвижимости.


- Нас интересуют только завершённые контракты. Давай, переходи на экран просмотра входного массива. Ищи фамилию «Ковальский».


- Вот она родная! Нашлась запись!

На экране, действительно, появилась форматированная строка:


| #AC-14397-2002| 23.05.2002| Жилой дом, два этажа, участок 20 акров |Кемери, ул. Сатеклес, 67|Ковальский, Франц|Фридманис, Юрис|Пирагс Ивар |.


- Валера, а вы храните файл ошибок входных данных? Переходи на просмотр этого файла и опять используй функцию поиска. Могло случиться, что эта запись чем-то не понравилась системе. Ищи ошибку по номеру контракта.


- В этот день не зарегистрировано ни одной ошибки…


- Выхода нет – придётся восстанавливать копии базы на магнитной ленте. В вашем компе хватит памяти, чтобы в тестовой среде восстановить базу данных в полном объёме?


- Обижаешь, коллега! У нас, как в Греции, всего хватает и памяти тоже достаточно.


- Мы с инспектором Калныня отправимся перекусить, теперь время обеда, а ты, пожалуйста, восстанови копию базы за 24 мая. Я думаю, что у тебя это займёт минут двадцать.


Когда мы вернулись, Валера Сотников легко и сразу нашёл злосчастную запись в восстановленной копии. Я решил подвести итог:


- Коллеги, наша задачка теперь формулируется следующим образом:

Входное сообщение по контракту поступило и обработано без ошибок.

Запись о контракте нашлась в накопителе входных данных.

Запись также присутствует в копии базы на магнитной ленте, снятой 24 мая, но отсутствует во всех следующих поколениях.

Другие записи за 23 мая не пропали, что исключает вариант полной потери информации за день.

В системе не предусмотрены режимы прямого удаления и корректировки записей пользователем с экрана. Корректировка осуществляется только повторным вводом исправленных данных.

В задаче спрашивается: как потерять запись, если она была обработана без ошибок и 24 мая ещё существовала в DB-LRE?


И тут до меня дошло, я нашёл возможный вариант решения:

- Скажи, пожалуйста, Валерий, что это за программа, с которой ты игрался в начале дня, когда мы с Зитой пришли и сломали тебе весь кайф?


- Боря мне оставил программу, которую в США применяют, чтобы искусственно запортить информацию. Рядовые пользователи и программисты, работающие в тестовой среде, не должны знать секреты клиентов. Я имею в виду: точный адрес, сумму денег на счету, пароли и т.д. Такая защита нужна в финансовых системах, а нам зачем – наша база не секретная вовсе.


Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже