Возможно, наиболее интенсивно применяется строковая функция Format$, способная преобразовывать значение почти любого типа в строку, форматированную произвольным образом. Из-за того что эта функция универсальна, она работает медленно. В VB6 имеются специализированные версии функции Format для большинства типовых задач форматирования: FormatDateTime, FormatCurrency, FormatPercent и FormatNumber. Главное отличие этих функций от функции Format$ заключается в том, что им заранее известен тип обрабатываемого значения, поэтому нет необходимости проводить синтаксический разбор строки, чтобы определить, как должна выглядеть отформатированная строка. Исключение строки формата, вероятно, вносит наиболее значительный вклад в ускорение операции. Подобные специализированные функции, основанные на применении Format$, уже входят в библиотеки большинства профессиональных программистов, но их появление среди встроенных функций языка программирования можно только приветствовать.
Еще бы! Мы написали простую тестовую программу для сравнения быстродействия функций двух видов. Новые функции быстрее в два-пять раз; это заметное улучшение.
Нам было любопытно узнать, повысилось ли также быстродействие базовых функций обработки строк, таких, как Mid$ и операции слияния(&).Усовершенствование подобных функций приводит к ускорению выполнения любой программы без внесения изменений в ее текст. Чтобы проверить это, мы также составили небольшую тестовую программу. Есть версия этой апплеты и для VB5, и для VB6, причем каждая из них показывает результаты другой. К нашему разочарованию, мы отметили некоторое замедление почти для всех проверявшихся функций в среде VB6. Поскольку расхождения были малы, мы подумали, что они могут быть вызваны неточной работой функции Timer. Однако при повторных прогонах тестовой программы были воспроизведены те же результаты.
Справедливости ради следует отметить, что все функции обработки строк стали быстрее с появлением в версии VB5 компилятора. Однако печально, что произошел частичный отход назад, особенно с учетом намного более быстрой обработки строк другими продуктами (в первую очередь это относится к пакету Delphi компании Inprise).
Обработка данных
В целом работа с базами данных в VB6 заметно улучшена. Ранее мы уже отметили два новых «конструктора»: Data Environment и Data Report. Хотя VB позволяет формировать новый проект под названием Data Project и все примеры, предлагаемые Microsoft, относятся к этой категории, данные «конструкторы» можно применять в стандартном проекте VB.
Как работает «конструктор» Data Environment. В его окне отображаются все доступные проекту подключения (источники данных), а также их специфические элементы. Кроме того, в окне Data Environment можно видеть взаимосвязи между такими элементами. В правой части экрана расположено окно Data View, запускаемое нажатием кнопки Data View Window на панели инструментов. В нем показывается содержание связи. Таблицы из такого окна просто переносятся с помощью мыши в «конструктор». Именно здесь можно просмотреть и изменить страницы свойств таблицы, в том числе закладку Relation, на которой описываются связи между таблицами. В данном случае таблица Orders связана с таблицей Customers, а Order Details - с Orders. Данное иерархическое представление можно видеть в окне «конструктора».
Форма для этого простого проекта была построена одной операцией drad-and-drop. Мы лишь перенесли мышью поле Customer name (фамилия заказчика) в форму. «Конструктор» вставил поля для всех элементов записи, относящейся к заказчику, и добавил табличные бланки (MSFlexGrid) для таблиц Orders и Details. Запустив полученную программу, мы увидели, что она работает правильно, хотя для перехода от первой записи к другим необходимо добавить элементы управления перемещениями.
«Конструктор» Data Report показан в правом нижнем углу. Традиционный внешний вид этого «конструктора» с использованием полос сразу делает очевидным его назначение. Действительно, Data Report - генератор отчетов в стиле Microsoft Access. Данный «конструктор» относительно прост в применении и интуитивно понятен.
Появление собственного генератора отчетов в VB - долгожданное событие. Хотя пакет Crystal Report фирмы Seagate - прекрасный продукт, та его версия, которая традиционно входила в комплект поставки VB, как минимум, на одно поколение старше. Фирма Seagate заинтересована в том, чтобы стимулировать у пользователей VB желание приобрести полную версию ее продукта. Мы надеемся, что Data Report может стать важной частью рабочей среды VB и разовьется до полноценной системы подготовки отчетов, используемой по умолчанию. Пока этот «конструктор» станет таким, каким он должен быть, вероятно, выйдет пара версий, что соответствует традициям Microsoft. Что касается Crystal Report, то он по-прежнему входит в комплект пакета, однако на этот раз он не был обновлен вместе с VB - с ним поставляется та же версия (4.6), что и с VB5.
То, что начиналось как образец программы на VB несколько версий назад, теперь стало составной частью рабочей среды VB. Графический администратор данных - Visual Data Manager (VisData) - упрощает работу с базами данных, входящими как составная часть в программу пользователя. VisData представляет собой простое средство для просмотра и отбора данных с помощью запросов, при этом он намного проще и компактнее, чем Access, и работать с ним существенно удобнее, особенно если учесть, что его можно вызвать из первой строки меню Add-Ins (Дополнения) пакета VB6. VisData по-прежнему остается примером программы - его исходный текст находится в папке с образцами программ VB6 на компакт-диске. У VisData есть ряд специфических для Jet-систем функций, таких, как Compact (Упаковать) и Repair (Восстановить), поэтому его можно применять как полезную утилиту для клиентов, не имеющих лицензию на Access. Разработчики также могут встраивать VisData или его фрагменты в свои собственные программы.
Наступление новой эры
Visual Basic появился как инструмент, облегчающий разработку прикладных программ Windows для самого широкого круга лиц. С выпуском каждой новой версии VB становился все больше и сложнее. VB6 продолжает эту традицию: в нем имеются развитые средства работы с базами данных и Интернетом, указывающие на то, что он выходит на корпоративный уровень, - несомненно, это новая эра для некогда простого продукта.