686__________________Часть V. Разработка программ и написание скрипгов

Когда программист записывает следующее выражение

database.SQLtable(selectStatement);

библиотека Database Connectivity Library возвращает результат выполнения операции SELECT в виде HTML-таблицы с именами колонок в заголовке таблицы.

Часто создается список (рис. 28.6), каждый элемент которого является ссылкой на отдельную страницу, содержащую более подробную информацию о выбранном элементе (рис. 28.7).

Использование Binary Large Object

При работе с приложениями, ориентированными на Web, Web-мастера часто испытывают потребность сохранять изображения, аудио- и видеоклипы в базах данных. Для реализации таких возможностей в SQL был введен новый тип данных, названный Binary Large Object (BLOb). Например, для базы данных по продаваемым книгам необходимо хранить изображение обложек книг в базе данных. Синтаксис записи для получения такого изображения из базы данных и выдачи его в качестве изображения HTML-документа следующий:

myCVirsor.blobFieldName.blob'Lmage (imageFormat, ALTstring, ALIGNstring ISMAP);

Параметр ALTstring, ALiGNstring,ISMAP являются необязательными. Если они присутствуют, то они также будут и в тэге HTML, выполняющем зафузку изображения. Таким образом, программист, работающий с базой данных по книгам, может записать следующую строчку:

myCursor. cover. ЫоЫтаде ("gif", "The cover of the book", "Left", ISMAP);

На объекты типа BLOb могут задаваться ссылки, поэтому такие объекты могут читаться вспомогательными приложениями или подключаемыми модулями браузера:

blobFieldName.blobLink(mimeType, linkText);

Такая конструкция наиболее часто используется для больших объектов BLOb, например, для аудиоклипов. Сервер Netscape сохраняет такой объект в памяти до тех пор, пока пользователь не выберет другую ссылку или не истечет промежуток времени, равный 60 секундам. Приведем пример отправки такого объекта клиенту:

myCursor= database.cursor ("SELECT * FROM blobbedBooks");

while (myCursor.next()){

write (myCursor.isbn);

write (myCursor.cover.bloblmage("gif"));

write (myCursor.authorReading.blobLink("audio/x-wav", "Selected highlights from"+ myCursor.title);

write ("<BR>"); '