Spec-Zone .ru
спецификации, руководства, описания, API

21.4.7.1. Предпосылки и Вводная информация

Этот раздел описывает предпосылки, которые должны быть satisifed прежде, чем Вы будете работать через остающиеся учебные разделы, и шоу, как установить код платформы, который служит основанием для учебных приложений.

Эти учебные руководства относятся к таблицам и демонстрационным данным от world база данных, которую можно загрузить с "раздела" Баз данных В качестве примера страницы MySQL Documentation.

Каждое учебное приложение использует платформу, состоящую из следующего кода. Примеры изменяются в строке, которая говорит /* INSERT TUTORIAL CODE HERE! */ в пределах try блок, который заменяется для каждого приложения со специализированным кодом.

#include <stdlib.h>#include <iostream>#include <sstream>#include <stdexcept>/* uncomment for applications that use vectors *//*#include <vector>*/#include "mysql_connection.h"#include <cppconn/driver.h>#include <cppconn/exception.h>#include <cppconn/resultset.h>#include <cppconn/statement.h>#include <cppconn/prepared_statement.h>#define EXAMPLE_HOST "localhost"#define EXAMPLE_USER "worlduser"#define EXAMPLE_PASS "worldpass"#define EXAMPLE_DB "world"using namespace std;int main(int argc, const char **argv){  string url(argc >= 2 ? argv[1] : EXAMPLE_HOST);  const string user(argc >= 3 ? argv[2] : EXAMPLE_USER);  const string pass(argc >= 4 ? argv[3] : EXAMPLE_PASS);  const string database(argc >= 5 ? argv[4] : EXAMPLE_DB);  cout << "Connector/C++ tutorial framework..." << endl;  cout << endl;  try {    /* INSERT TUTORIAL CODE HERE! */  } catch (sql::SQLException &e) {    /*      MySQL Connector/C++ throws three different exceptions:      - sql::MethodNotImplementedException (derived from sql::SQLException)      - sql::InvalidArgumentException (derived from sql::SQLException)      - sql::SQLException (derived from std::runtime_error)    */    cout << "# ERR: SQLException in " << __FILE__;    cout << "(" << __FUNCTION__ << ") on line " << __LINE__ << endl;    /* what() (derived from std::runtime_error) fetches error message */    cout << "# ERR: " << e.what();    cout << " (MySQL error code: " << e.getErrorCode();    cout << ", SQLState: " << e.getSQLState() << " )" << endl;    return EXIT_FAILURE;  }  cout << "Done." << endl;  return EXIT_SUCCESS;}

Попробуйте код платформы как автономную программу, используя эту процедуру:

  1. Скопируйте и вставьте код платформы к файлу такой как framework.cpp. Отредактируйте #define операторы, чтобы отразить Ваши параметры соединения (сервер, пользователь, пароль, база данных). Кроме того, потому что файл содержит те параметры, установите его режим доступа, чтобы быть читаемыми только вам непосредственно.

  2. Скомпилируйте платформу. Например, на Mac OS X, команда могла бы быть похожей на это (введите команду в одну строку):

    shell> g++ -o framework  -I/usr/local/include
                        -I/usr/local/include/cppconn  -lmysqlcppconn
                        framework.cpp

    Адаптируйте команду по мере необходимости к Вашей системе. Подобная команда необходима для учебных приложений, которые следуют.

  3. Чтобы выполнить платформу, введите следующее:

    shell> ./framework

    Вы будете видеть простое сообщение:

    Connector/C++ tutorial framework...Done.

Вы теперь готовы продолжать к учебным руководствам.