Библиотека-оболочка mysql для C++
Автор: Roland Haenel (rh@ginster.net). Эта программа является public domain. Распространять и использовать ее можно совершенно свободно.
Это маленькая оболочка для C++, которая написана вокруг базисной клиентской библиотеки mysql. Целью было создание единого универсального интерфейса для следующих баз данных:
- mysql (разработан Michael Widenius).
- msql (разработан David Hughes).
- postgres95 (разработан Postgres Group).
Но потому, что mysql намного лучше прочих, контекст этой реализации немного изменился. Теперь стало нужно обеспечить удобный в работе и безопасный интерфейс доступа к mysql.
Программа примера может быть найдена в example.cc. Некоторые слова относительно классов библиотеки:
Класс Database обеспечивает интерфейс связи с базой данных mysqld. Следующие методы выполнены:
- int Database::init()
Фактически это не делает ничего в настоящее время, но вызовите его перед выполнением чего-нибудь еще. Это может быть важно для будущих выпусков. - int Database::status();
Может быть вызван в любое время. Возвращает состояние подключения: DB_CONNECTION_NONE, DB_CONNECTION_OK или DB_CONNECTION_BAD. - char Database::*errorMessage();
Если произошла ошибка, возвращает текст, описывающий ошибку - int Database::connect(char *host, char *port, char *db);
Соединяется с базой данных db на машине host. Обратите внимание, что параметр port в настоящее время еще не задействован. - void Database::disconnect();
Закрывает текущее подключение. - int Database::reset();
Пока не реализовано. - DBResult *Database::exec(char *sqlFormat, ...);
void Database::exec(DBResult *res, char *sqlFormat, ...);
Выполнить произвольную команду SQL. Первая форма возвращает экземпляр класса DBResult (даже если имелся сбой). Последняя форма повторно использует уже созданный экземпляр класса DBResult. - int DBResult::status();
Возвращает состояние транзакции, связанное с экземпляром класса. Значения могут быть следующими: #define DB_COMMAND_OK 0 // OK: команда выполнена #define DB_EMPTY_QUERY 1 // Запрос не вернул данных #define DB_TUPLES_OK 2 // Запрос вернул данные #define DB_ERROR 5 // Ошибка в команде #define DB_BAD_RESPONSE 6 // Неправильный ответ сервера #define DB_UNEXPECTED 7 // Непонятная ошибка
Содержание раздела