9 Ocak 2018 Salı

MySQL C++ Api

Giriş
Şu satırları dahil ederiz.
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
Linklemek
Şöyle yaparız.
target_link_libraries(MyProject c:/path/to/mysql/lib/mysqlcppconn.lib)
İskelet
Şöyle yaparız.
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!'"); //replace with your statement
  while (res->next()) {
  
    // Access column data by alias or column name 
    cout << res->getString("_message") << endl;
    // 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: " << e.what();
  cout << " (MySQL error code: " << e.getErrorCode();
  cout << ", SQLState: " << e.getSQLState() << " )" << endl;
}
Driver Sınıfı
constructor
Şöyle yaparız.
Driver* driver = get_driver_instance();
connect metodu
Örnek
Şöyle yaparız.
unique_ptr<Connection> con;
con.reset(driver->connect("localhost", "root", "password"));
Örnek
Şöyle yaparız. con nesnesini silmek gerekir.
sql::Connection *con = driver->connect("localhost", "root", "");
Connection Sınıfı
createStatement metodu
Örnek
Şöyle yaparız.
unique_ptr<Statement> stmt;
stmt.reset(con->createStatement());
Örnek
Şöyle yaparız. stmt nesnesini silmek gerekir.
sql::Statement *stmt = con->createStatement();
setSchema metodu
Şöyle yaparız.
con->setSchema("ts_server");
Statement Sınıfı
executeQuery metodu
Örnek
Şöyle yaparız.
unique_ptr<ResultSet> res;
res.reset(stmt->executeQuery("SELECT * FROM account_info"));
Örnek
Şöyle yaparız.
sql::ResultSet *res = stmt->executeQuery("SELECT ...");
ResultSet Sınıfı
getBlob metodu
Şöyle yaparız.
std::istream *s = res->getBlob("match_object");
{
  boost::archive::binary_iarchive ia (*s);
  ia >> foo;
}
delete s;
getString metodu
Şöyle yaparız.
cout << res->getString("MyColumn") << endl;
getUInt metodu
Şöyle yaparız.
uint32_t id = res->getUInt("id");
next metodu
Şöyle yaparız.
while(res->next())
{
  ...
}

Hiç yorum yok:

Yorum Gönder