В промежутке между открытием соединения
#else
#error Нет соединения с базой данных, tfendif }
Методы mysql_close() и msqlClose() освобождают ресурсы, используемые соединениями с MySQL и mSQL соответственно.
Выполнение обращений к базе данных
В промежутке между открытием соединения и закрытием базе данных обычно посылаются команды. Класс Connection делает это с помощью метода Query(), принимающего команду SQL в качестве аргумента. Если команда является запросом, она возвращает экземпляр класса Result из объектной модели, представленной на рио. 13-1. Если же команда обновляет данные, то метод возвращает NULL и устанавливает значение affected_rows равным количеству строк, в которых произведены изменения. В примере 13-6 показано, как класс Connection обрабатывает запросы к базам данных MySQL и mSQL.
Пример 13-6. Обработка запроса к базе данных
Result "Connection::Query(char *sql) { T_RESULT *res; int state;
// Если нет соединения, делать нечего
if( !lsConnected(-) ) { throw "Соединения нет.";
}
// Выполнить запрос
#if defined(HAS_MSQL)
state = msqlQuery(connection, sql);
#elif defined(HAS_MYSQL)
state = mysql_query(connection, sql);
#else
#error Нет соединения с базой данных,
#endif
// Если произошла ошибка
if( state < 0 ) { throw GetError();
}
// Забрать результаты, если таковые имеются
#if defined(HAS_MSQL)
res = msqlStoreResult();
#elif defined(HAS_MYSQL)
res = mysql_store_result(connection);
#else
#error Нет соединения с базой данных,
#endif
// Если результат null, это было обновление или произошла ошибка
// Примечание: mSQL не порождает ошибки в msqlStoreResult()
if( res == (T_RESULT *)NULL ) {
// Установить значение affected_rows равным возвращенному msqlQuery()
#if defined(HAS_MSQL)
affected_rows = state;
#elif defined(HAS_MYSQL)
// field_count != 0 означает, что произошла ошибка
int field_count = mysql_num_fields(connection);
if( field_count != 0 )
{
throw GetError();
}
else
{
// Запомнить affected_rows
affected_rows = mysql_affected_rows(connection); }
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий