Глава 28. Пакет UveWire Pro_____________________________687

Этот код выводит GIF-изображение обложки книги. Когда будет выбрана данная ссылка, программа-клиент также загружает и проигрывает звуковой файл, и в течение нескольких секунд подсвечивается название книги.

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

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

myCursor.isbn= "X0789708019";

myCursor.cover= blob("CoverOfWebmasters.gif");

myCursor.insertRow ("blobbedBooks");

Транзакции в системе LiveWire Pro

При работе с базами данных можно использовать три метода управления транзакциями:

+ beginTransaction()+ commitTransaction()

+ rollbackTransaction()

^ Эти конструкции могут использоваться для построения кодов, подобных

следующему:

database.BeginTransaction();

int db error= 0;

dbErro =database.execute ("INSERT INTO books(isbn, title)VALUES (request.isbn, request.title)");

if (!dbError)(

dbError= database.execute ("INSERT INTO authors VALUES (request.isbn, request.authorl)");

if (dbError)database.rollbackTransaction();

else

database.commitTransaction();

}

else

// Error occurred while processing book itself

database.rollbackTransaction();

Обработка ошибок

Система LiveWire Pro обеспечивает определенный уровень изоляции между программистом иRDBMS.Однако если случаются какие-либо ошибки, то большинство программистов хотят получить доступ к сообщениям, генерируемым RDBMS. Для удовлетворения этих потребностей библиотека Dataocise Connectivity Library имеет два различных уровня сообщений об ошибках.