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>"); '