diff options
author | Gluzskiy Alexandr <sss123next@list.ru> | 2010-08-05 04:05:49 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss123next@list.ru> | 2010-08-05 04:05:49 +0300 |
commit | 3802b40a1b5b6341e4c330d1b37135f5d0dc0933 (patch) | |
tree | 29501bb02899dcbc2363182ce3e49af4f8461af8 | |
parent | 42c3b355be96c5a21ded27dbc25ee0d6a4f7668f (diff) |
modified: ../../api/db.h
modified: main.cpp
-rw-r--r-- | api/db.h | 8 | ||||
-rw-r--r-- | modules/dbsqlite/main.cpp | 41 |
2 files changed, 34 insertions, 15 deletions
@@ -10,4 +10,12 @@ struct DATA char* szModule; //database nodue (used when reading info) char* szSetting; //setting name }; + +#define DB_WRITE_SETTING "Db/WriteSetting" +#define DB_GET_SETTING "Db/GetSetting" +#define DB_DELETE_SETTING "Db/DeleteSetting" +#define dbGetSetting(a, b) CallService(DB_GET_SETTING, a, b) +#define dbSetSetting(a, b) CallService(DB_WRITE_SETTING, a, b) +#define dbDeleteSetting(a, b) CallService(DB_DELETE_SETTING, a, b) + #endif diff --git a/modules/dbsqlite/main.cpp b/modules/dbsqlite/main.cpp index 6e936d6..7db4691 100644 --- a/modules/dbsqlite/main.cpp +++ b/modules/dbsqlite/main.cpp @@ -11,9 +11,9 @@ PLUGINLINK *pluginLink; sqlite3* db; char* db_err = 0; -SERVICE dbWriteSetting(WPARAM w, LPARAM l); -SERVICE dbGetSetting(WPARAM w, LPARAM l); -SERVICE dbDeleteSetting(WPARAM w, LPARAM l); +SERVICE svc_dbWriteSetting(WPARAM w, LPARAM l); +SERVICE svc_dbGetSetting(WPARAM w, LPARAM l); +SERVICE svc_dbDeleteSetting(WPARAM w, LPARAM l); HINSTANCE hInst; BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved ) @@ -38,12 +38,22 @@ extern "C" __declspec(dllexport) PLUGININFO* SetPluginInfo() return &pluginInfo; } +static int callback(void *NotUsed, int argc, char **argv, char **azColName) +{ + for(int i = 0; i < argc; i++) + { + MessageBoxA(0, argv[i], azColName[i], MB_OK); + } + return 0; +} + + extern "C" int __declspec(dllexport) Load(PLUGINLINK *link) { pluginLink = link; - CreateServiceFunction("Db/WriteSetting", (SERVICE)dbWriteSetting); - CreateServiceFunction("Db/GetSetting", (SERVICE)dbGetSetting); - CreateServiceFunction("Db/DeleteSetting", (SERVICE)dbDeleteSetting); + CreateServiceFunction("Db/WriteSetting", (SERVICE)svc_dbWriteSetting); + CreateServiceFunction("Db/GetSetting", (SERVICE)svc_dbGetSetting); + CreateServiceFunction("Db/DeleteSetting", (SERVICE)svc_dbDeleteSetting); if(!sqlite3_open_v2(".\\database.sql3", &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL)) MessageBoxA(0, "dbsqlite plugin loaded", "INFO", MB_OK); return 0; @@ -51,9 +61,10 @@ extern "C" int __declspec(dllexport) Load(PLUGINLINK *link) extern "C" int __declspec(dllexport) OnModulesLoaded() { - sqlite3_exec(db, "CREATE TABLE 'data' (id INTEGER PRYMARY KEY, module TEXT, setting TEXT, string TEXT, number INT, binary BLOB);", 0, 0, &db_err); - sqlite3_exec(db, "CREATE GENERATOR generator_;", 0, 0, &db_err); - sqlite3_exec(db, "CREATE TRIGGER index_updater FOR data BEFORE INSERT POSITION 0 AS BEGIN NEW.id = GEN_ID(generator_, 1) END;", 0, 0, &db_err); + sqlite3_exec(db, "CREATE TABLE 'data' (id INTEGER PRYMARY KEY, module TEXT, setting TEXT, string TEXT, number INT, binary BLOB);", callback, 0, &db_err); + //some autoindexing code here + sqlite3_exec(db, "SELECT * FROM data;", callback, 0, &db_err); + MessageBoxA(0, db_err, "INFO", MB_OK); for(;;) Sleep(1000); return 0; @@ -66,7 +77,7 @@ extern "C" int __declspec(dllexport) Unload() return 0; } -SERVICE dbWriteSetting(WPARAM w, LPARAM l) +SERVICE svc_dbWriteSetting(WPARAM w, LPARAM l) { PLUGININFO *info = (PLUGININFO*)w; DATA *data = (DATA*)l; @@ -82,7 +93,7 @@ SERVICE dbWriteSetting(WPARAM w, LPARAM l) strcat(buf, "', "); strcat(buf, tmp); strcat(buf, ");"); - sqlite3_exec(db, buf, 0, 0, &db_err); + sqlite3_exec(db, buf, callback, 0, &db_err); MessageBoxA(0, db_err, "INFO", MB_OK); break; case D_STRING: @@ -93,7 +104,7 @@ SERVICE dbWriteSetting(WPARAM w, LPARAM l) strcat(buf, "', '"); strcat(buf, (char*)data->pData); strcat(buf, "');"); - sqlite3_exec(db, buf, 0, 0, &db_err); + sqlite3_exec(db, buf, callback, 0, &db_err); MessageBoxA(0, db_err, "INFO", MB_OK); break; case D_BLOB: @@ -102,13 +113,13 @@ SERVICE dbWriteSetting(WPARAM w, LPARAM l) break; } } -SERVICE dbGetSetting(WPARAM w, LPARAM l) +SERVICE svc_dbGetSetting(WPARAM w, LPARAM l) { PLUGININFO *info = (PLUGININFO*)w; DATA *data = (DATA*)l; } -SERVICE dbDeleteSetting(WPARAM w, LPARAM l) +SERVICE svc_dbDeleteSetting(WPARAM w, LPARAM l) { PLUGININFO *info = (PLUGININFO*)w; DATA *data = (DATA*)l; @@ -118,7 +129,7 @@ SERVICE dbDeleteSetting(WPARAM w, LPARAM l) strcat(buf, "' AND setting = '"); strcat(buf, data->szSetting); strcat(buf, "';"); - sqlite3_exec(db, buf, 0, 0, &db_err); + sqlite3_exec(db, buf, callback, 0, &db_err); MessageBoxA(0, db_err, "INFO", MB_OK); } |