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

21.4.6.5. MySQL, Connector/C ++ Полный Пример 1

Следующий код показывает полный пример того, как использовать MySQL, Connector/C ++:

/* Copyright 2008, 2010, Oracle and/or its affiliates. All rights reserved.This program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; version 2 of the License.There are special exceptions to the terms and conditions of the GPLas it is applied to this software. View the full text of theexception in file EXCEPTIONS-CONNECTOR-C++ in the directory of thissoftware distribution.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA*//* Standard C++ includes */#include <stdlib.h>#include <iostream>/*  Include directly the different  headers from cppconn/ and mysql_driver.h + mysql_util.h  (and mysql_connection.h). This will reduce your build time!*/#include "mysql_connection.h"#include <cppconn/driver.h>#include <cppconn/exception.h>#include <cppconn/resultset.h>#include <cppconn/statement.h>using namespace std;int main(void){cout << endl;cout << "Running 'SELECT 'Hello World!' »   AS _message'..." << endl;try {  sql::Driver *driver;  sql::Connection *con;  sql::Statement *stmt;  sql::ResultSet *res;  /* Create a connection */  driver = get_driver_instance();  con = driver->connect("tcp://127.0.0.1:3306", "root", "root");  /* Connect to the MySQL test database */  con->setSchema("test");  stmt = con->createStatement();  res = stmt->executeQuery("SELECT 'Hello World!' AS _message");  while (res->next()) {    cout << "\t... MySQL replies: ";    /* Access column data by alias or column name */    cout << res->getString("_message") << endl;    cout << "\t... MySQL says it again: ";    /* Access column fata by numeric offset, 1 is the first column */    cout << res->getString(1) << endl;  }  delete res;  delete stmt;  delete con;} catch (sql::SQLException &e) {  cout << "# ERR: SQLException in " << __FILE__;  cout << "(" << __FUNCTION__ << ") on line " »     << __LINE__ << endl;  cout << "# ERR: " << e.what();  cout << " (MySQL error code: " << e.getErrorCode();  cout << ", SQLState: " << e.getSQLState() << " )" << endl;}cout << endl;return EXIT_SUCCESS;}