Часть 50 из 109 В начало
Для доступа к библиотеке пройдите авторизацию
– Хорошо. Значит, в таком случае лучше использовать команду СЯЗ?
– Верно.
– Всего одну?
– Да, но такая команда обычно получается довольно длинной.
– Но зато ничего не случится? Я имею в виду, что компьютер сделает что-то неверно.
Хелена невольно вздохнула.
– Не в этом смысле. Если вы неправильно введете условия, то получите неправильные данные. Но вы ничего из-за этого не сломаете.
– Понимаю, – ответил он. Казалось, его впечатлило то, что с помощью программы можно что-то сломать.
Она не должна допустить, чтобы он разочаровался. Чтобы выдумал что-то другое. Хелена быстро показала ему, как создать запрос, какие вообще доступны таблицы и как посмотреть их структуру.
– А нам нужна вот эта таблица, не так ли? – Он постучал ногтем по экрану. – ТЕЛЕФОНЫ. РЕГИСТРАЦИЯ. Верно?
– Да, верно. – Она показала ему структуру: номер телефона, дата, время, номер радиовышки и географические координаты регистрации. – Но откуда берутся координаты, я не знаю, – призналась она. – На самом деле, я понятия не имею, как работает сеть мобильной телефонии.
– Скорее всего, это снова мужское дело, – предположил Леттке и объяснил ей: вокруг каждой радиовышки находится радиодиапазон, который можно разделить на секторы, и все они исходят из одной точки – из вышки. Когда регистрируется телефон, радиовышка определяет направление и длительность сигнала до точки, где находится телефон, преобразует все это в географические координаты, которые затем заносятся в таблицу. Каждые несколько минут радиовышка и телефон обмениваются новым сигналом, он используется только для ориентации; если местоположение меняется, то формируется новый набор данных.
– Понятно, – сказала Хелена, хотя по-прежнему у нее оставалось весьма поверхностное представление о том, что происходит за техническими кулисами. – В любом случае нам нужны географические координаты искомого места, то есть местного отделения Рейхсбанка.
Она открыла карту, отыскала Веймар и банк, записала долготу и широту: 11,3249 восточной долготы, 50,9791 северной широты.
– Разве там не должно быть что-то с минутами и секундами? – удивился Леттке.
– Это будет навигационный формат записи, его используют моряки и пилоты, – объяснила Хелена. – В наших базах данных используется только десятичное представление, потому что его проще и быстрее вычислить.
– Восточная долгота, – прочитал Леттке. – То есть немецкая телефонная сеть по-прежнему использует английские координаты?
– Переход на немецкую систему координат должен произойти после окончательной победы.
От этого изменилось бы немногое: по сути, только отсчет долготы: нулевой меридиан пройдет уже не через обсерваторию в Гринвиче в Англии, а через центр запланированного Большого зала славы в столице Германского рейха. В базе данных сделать это можно быстро, но также придется перепечатывать и все карты, а на это во время войны нет времени.
– Да и не важно, – произнес Леттке. – Так что, вы напишете этот запрос сейчас?
Хелена набрала:
ВЫБРАТЬ ИЗ ТЕЛЕФОНЫ. РЕГИСТРАЦИЯ
ВСЕ (НомерТелефона)
ДЛЯ (
ПОЗ.ДЛ= 11,3249
И
ПОЗ.ШР= 50,9791
И
ВРЕМЯ («11.8.1942 10:30»,
«11.8.1942 11:30», 0)
)
– Первая строка указывает, к какой таблице я обращаюсь, – объяснила она. – Затем я говорю, какие поля должны быть отображены в результате. И все, что стоит после ДЛЯ и круглой скобки, является условием, поэтому оно определяет, какие записи должны отображаться.
– «ПОЗ.ДЛ» – это долгота позиции, я полагаю?
– Точно.
– А почему там между строками постоянно стоит «И»?
– Потому что все эти условия должны быть выполнены. Есть также случаи, когда применяется одно или другое условие, тогда нужно поставить дополнительные скобки и связать союзом «ИЛИ».
– Ага, – согласился Леттке.
Не было похоже, что он это понял. И в его взгляде было что-то стеклянное. Хелена быстро добавила:
– Но такое случается редко. Очень редко. Это скорее… теоретическая возможность.
На самом деле, это было довольно распространенным явлением. Однако в данный момент было важно, чтобы он не пал духом.
– А это определяет промежуток времени, – предположил Леттке, прикоснувшись к предпоследней строке. – Теперь я понимаю.
Прозвучало так, словно он себя подбадривает. Ну, хотя бы так.
– Точно, – ответила Хелена.
Стоит ли объяснить ему, что это была за функция? Лучше не надо. Наверное, это его окончательно ошеломит.
– А как… как я теперь получу результат? – поинтересовался он.
– Отдав команду «ВЫПОЛНИТЬ». – Она показала ему соответствующее сочетание клавиш. – Это приведет к тому, что запрос будет перенаправлен в программу СЯЗ, которая затем выполнит обработку данных.
– Хорошо. Так и сделайте.
Хелена нажала на кнопки. Запрос исчез, появился индикатор состояния.
– Это займет некоторое время.
Но много времени это не заняло. Казалось, не произошло ничего особенного. Быстрее, чем предполагалось, на экране появился длинный список номеров телефонов, длиной в полторы страницы.
– Это телефонные номера всех людей, которые были вчера в банке в указанный промежуток времени? – уточнил Леттке.
– Да. И среди них может оказаться несколько тех, которые находились в непосредственной близости от здания.
– А если я захочу посмотреть имена?
– Тогда заключите в скобки весь запрос и используйте его в качестве вводимых данных для второго запроса.
Хелена снова открыла запрос, сделала копию, поставила скобки перед ним и после него и дописала:
ВЫБРАТЬ ИЗ ТЕЛЕФОНЫ. АБОНЕНТ
ВСЕ (Фамилия, Имя, НомерТелефона)
ДЛЯ (
ТЕЛЕФОНЫ. АБОНЕНТ. НомерТелефона = (
Леттке уставился на экран, медленно двигая нижней челюстью взад-вперед, словно жевал что-то очень-очень тягучее. Наконец он сказал:
– Правильно ли я понимаю? Значит, он берет каждый отдельный номер телефона из недавнего списка – который сформирован по запросу ниже и теперь стоит в скобках – и ищет для него фамилию, имя… и снова номер телефона?
– Совершенно верно.
– Телефонный номер в обеих таблицах будет одинаковым.
– Правильно. Это то, что однозначно идентифицирует абонента.
Леттке потер шею.
– Запускайте.