Глава 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 имеет два различных уровня сообщений об ошибках.