wxSQLite3の練習
Bindを使いたかったのだけれどエラー出まくりで断念。結局SQLクエリをwxStringでつなげた。
/** * WxSQLiteTest.cpp - wxSQLiteのテスト用ソースコード * */ #include "WxSQLiteTest.h" bool WxSQLiteTest::OnInit() { return true; } int WxSQLiteTest::OnExit() { return 0; } int WxSQLiteTest::OnRun() { const wxString dbFile = wxGetCwd() + wxT("/test.db"); try { // データベースの初期化 wxSQLite3Database::InitializeSQLite(); wxSQLite3Database db; cout << "SQLite3 Version: " << (const char*) db.GetVersion().mb_str(wxConvUTF8) << endl; cout << "SQLite3 Source Id: " << (const char*) db.GetSourceId().mb_str(wxConvUTF8) << endl; // DBを開く db.Open(dbFile); // テーブルが無ければテーブルを作る if (!db.TableExists(wxT("DIARY_USERS"))) { db.ExecuteQuery(wxT("CREATE TABLE DIARY_USERS(OID TEXT, NAME TEXT, KANANAME TEXT)")); } // テーブル内にデータがあれば削除する db.ExecuteQuery(wxT("DELETE FROM DIARY_USERS")); // データの元ネタ用配列 wxArrayString array; array.Add(wxT("('1','天野雪輝','あまの ゆきてる')")); array.Add(wxT("('2','我妻由乃','がさい ゆの')")); array.Add(wxT("('3','火山高夫','ひやま たかお')")); array.Add(wxT("('4','来栖圭吾','くるす けいご')")); array.Add(wxT("('5','豊穣礼佑','ほうじょう れいすけ')")); array.Add(wxT("('6','春日野椿','かすがの つばき')")); array.Add(wxT("('7','戦場マルコ','いくさば マルコ')")); array.Add(wxT("('8','上下かまど','うえした かまど')")); array.Add(wxT("('9','雨流みねね','うりゅう みねね')")); array.Add(wxT("('10','月島狩人','つきしま かりゅうど')")); array.Add(wxT("('11','ジョン・バックス','ジョン・バックス')")); array.Add(wxT("('12','平坂黄泉','ひらさか よもつ')")); // 12回繰り返す for(int i=0;i < array.GetCount();i++) { wxString SQL_QUERY = wxT("INSERT INTO DIARY_USERS VALUES"); SQL_QUERY += array[i]; // デバッグ用文字列 cout << SQL_QUERY << endl; db.ExecuteQuery(SQL_QUERY); } db.Close(); } catch (wxSQLite3Exception& e) { cerr << e.GetErrorCode() << ":" << (const char*) (e.GetMessage().mb_str()) << endl; } return 0; }