Browsing – browsing, eh nemuin tutorial yang bagus, Database C++ SQLite. Jadi dengan ini kita bisa lebih mudah lagi jika ingin membuat aplikasi database berbasis C++. Yang dibutuhkan selain kemampuan Prmograman C++ adalah SQLite nya sendiri, jika pengen download SQLite bisa melalui link berikut http://www.sqlite.org/download.html
Pengenalan
SQLite adalah mesin SQL database tertanam. Tidak seperti kebanyakan database SQL lainnya, SQLite tidak memiliki proses server yang terpisah, melainkan membaca dan menulis secara langsung ke file disk biasa. Hal ini membuat SQLite solusi mudah dan baik untuk menyimpan data untuk aplikasi Anda.
Membuka Database
Hal pertama yang perlu Anda lakukan, adalah membuka database. Jika database belum ada, maka akan dibuat.
sqlite3 *database; sqlite3_open("Database.sqlite", &database);
Argumen pertama adalah nama file, yang kedua adalah database sqlite3 menangani. Jika semuanya berjalan benar, maka akan tampil SQLITE_OK. Setelah database dibuka, Anda dapat mulai melakukan sesuatu. Kode berikut menunjukkan salah satu contohnya :
sqlite3_stmt *statement; if(sqlite3_prepare_v2(database, "CREATE TABLE a (b INTEGER, c INTEGER);", -1, &statement, 0) == SQLITE_OK) { int cols = sqlite3_column_count(statement); int result = 0; while(true) { result = sqlite3_step(statement); if(result == SQLITE_ROW) { for(int col = 0; col < cols; col++) { string s = (char*)sqlite3_column_text(statement, col); //do something with it } } else { break; } } sqlite3_finalize(statement); }
Hal pertama yang harus Anda lakukan adalah mempersiapkan laporan menggunakan sqlite3_prepare_v2 (). Kemudian kita harus menjalankan statement menggunakan sqlite3_step(). Fungsi ini akan mengembalikan nilai yang kita perlu untuk menentukan tindakan selanjutnya. Kemudian kita harus mengetahui jumlah kolom yang ada. Kita bisa melakukan ini dengan menggunakan sqlite3_column_count(). Lalu yang harus kita lakukan setelahnya adalah mengambil value dari kolom tersebut menggunakan sqlite3_column_text().
Untuk menutup koneksi database yang telah terbuka, Anda bisa gunakan sintaks “sqlite3_close(database);”
Contoh
#include "Database.h" #include <iostream> Database::Database(char* filename) { database = NULL; open(filename); } Database::~Database() { } bool Database::open(char* filename) { if(sqlite3_open(filename, &database) == SQLITE_OK) return true; return false; } vector<vector<string> > Database::query(char* query) { sqlite3_stmt *statement; vector<vector<string> > results; if(sqlite3_prepare_v2(database, query, -1, &statement, 0) == SQLITE_OK) { int cols = sqlite3_column_count(statement); int result = 0; while(true) { result = sqlite3_step(statement); if(result == SQLITE_ROW) { vector<string> values; for(int col = 0; col < cols; col++) { values.push_back((char*)sqlite3_column_text(statement, col)); } results.push_back(values); } else { break; } } sqlite3_finalize(statement); } string error = sqlite3_errmsg(database); if(error != "not an error") cout << query << " " << error << endl; return results; } void Database::close() { sqlite3_close(database); }
Kemudian, untuk file Database.h nya adalah sebagai berikut :
#ifndef __DATABASE_H__ #define __DATABASE_H__ #include <string> #include <vector> #include <sqlite3.h> using namespace std; class Database { public: Database(char* filename); ~Database(); bool open(char* filename); vector<vector<string> > query(char* query); void close(); private: sqlite3 *database; }; #endif
Kemudian, untuk implementasi dari source code diatas agar bisa digunakan adalah sebagai berikut :
#include <iostream> #include "Database/Database.h" using namespace std; Database *db; db = new Database("Database.sqlite"); db->query("CREATE TABLE a (a INTEGER, b INTEGER);"); db->query("INSERT INTO a VALUES(1, 2);"); db->query("INSERT INTO a VALUES(5, 4);"); vector<vector<string> > result = db->query("SELECT a, b FROM a;"); for(vector<vector<string> >::iterator it = result.begin(); it < result.end(); ++it) { vector<string> row = *it; cout << "Values: (A=" << row.at(0) << ", B=" << row.at(1) << ")" << endl; } db->close();
Yaph, sekian ilmu yang saya dapat dari http://www.dreamincode.com/
Related Articles
- SQLite 3.7.0 Released (sqlite.org)
- SQLite – Easy to use, dependable and good to use database for small applications. (amit-agarwal.co.in)
- Using SQLite (oreilly.com)
SQLite juga bisa di-password sehingga tidak bisa dibuka oleh orang lain karena filenya akan di-encrypt. SQLChiper adalah pengembangan dari SQLite, please check di http://sqlcipher.sf.net
thanks for sharing
Itu databasenya buat di C++ Builder pakai Unit?
*baru belajar*