SOCI (Simple Oracle Call Interface) 一開始是由 Maciej Sobczak 在 CERN 工作時開發, 作為 Oracle 資料庫函式庫的 abstraction layer 並且在 CERN 的工作環境中使用,之後則又加入了數個資料庫的支援。
SOCI 目前支援 Oracle, MySQL, PostgreSQL, SQLite3 等資料庫以及 ODBC 作為通用的 backend。 下面是在 openSUSE 安裝 SOCI core 以及 SOCI SQLite3 開發檔案的指令:sudo zypper in soci-devel soci-sqlite3-devel
(注意:SOCI 本身的體積並不大,但是安裝時需要 boost-devel,而 boost-devle 是個包含很多模組的函式庫, 如果之前就有安裝 boost-devel 那麼這就不是一個問題)
下面是一個使用 SOCI 取得 SQLite3 版本的測試程式:
#include <soci/soci.h>
#include <soci/sqlite3/soci-sqlite3.h>
#include <iostream>
#include <string>
int main() {
try {
soci::session sql("sqlite3", "db=:memory:");
std::string version;
sql << "select sqlite_version()", soci::into(version);
std::cout << version << std::endl;
} catch (soci::soci_error const &e) {
std::cerr << "Failed: " << e.what() << std::endl;
} catch (std::runtime_error const &e) {
std::cerr << "Unexpected standard exception occurred: " << e.what()
<< std::endl;
} catch (...) {
std::cerr << "Unexpected unknown exception occurred." << std::endl;
}
return 0;
}
使用下列的指令編譯:
g++ version.cpp -lsoci_core -lsoci_sqlite3 -o version
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。