diff options
| author | 2010-12-10 15:42:18 +0000 | |
|---|---|---|
| committer | 2010-12-10 15:42:18 +0000 | |
| commit | a067986821a46de3af5c92805bf22fbae8482979 (patch) | |
| tree | 71e5b6226cf9c6224f2a635eafec83c982c6936f /src/modules/objects/class_sql.cpp | |
| parent | /ignore alias: added the ability to choose which flags you want to see enabled; (diff) | |
| download | KVIrc-a067986821a46de3af5c92805bf22fbae8482979.tar.gz KVIrc-a067986821a46de3af5c92805bf22fbae8482979.tar.bz2 KVIrc-a067986821a46de3af5c92805bf22fbae8482979.zip | |
Code improvements in kvs sql class
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5185 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/objects/class_sql.cpp')
| -rw-r--r-- | src/modules/objects/class_sql.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/modules/objects/class_sql.cpp b/src/modules/objects/class_sql.cpp index 6be4737b6..68bf04766 100644 --- a/src/modules/objects/class_sql.cpp +++ b/src/modules/objects/class_sql.cpp @@ -85,6 +85,8 @@ static void KviKvsSqlInstanceUnregister(KviKvsObject_sql *instance) Connects to the DBMS using the connection <connection_name> and selecting the database <database_name>.[br] If the optional parameter <database_driver> is passed, it will be used the corresponding driver (if present), otherwise Sqlite will be used. Returns true if the operation is successful, false otherwise. + !fn:: <array or string> $connectionNames([<stringreturnflag>:'s']) + Returns as array or, if the flag 's' is passed, as a comma separate string all the database active connection's names. !fn: <array> $tablesList(<connection_name:string>) Returns as array the database tables list. !fn: $queryInit(<connection_name:string>) @@ -142,6 +144,7 @@ KVSO_BEGIN_REGISTERCLASS(KviKvsObject_sql,"sql","object") KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_sql,commit) KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_sql,beginTransaction) KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_sql,setConnection) + KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_sql,connectionNames) KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_sql,setCurrentQuery) KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_sql,tablesList) KVSO_REGISTER_HANDLER_BY_NAME(KviKvsObject_sql,currentQuery) @@ -217,6 +220,32 @@ KVSO_CLASS_FUNCTION(sql,setConnection) c->returnValue()->setBoolean(db.open()); return true; } + +KVSO_CLASS_FUNCTION(sql,connectionNames) +{ + + QString szFlag; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("stringreturnflag",KVS_PT_STRING,KVS_PF_OPTIONAL,szFlag) + KVSO_PARAMETERS_END(c) + QStringList szConnectionsList=QSqlDatabase::connectionNames(); + if(szFlag.indexOf('s',0,Qt::CaseInsensitive) != -1) + { + QString szConnections=szConnectionsList.join(","); + c->returnValue()->setString(szConnections); + } + else + { + KviKvsArray *pArray=new KviKvsArray(); + for(int i=0;i<szConnectionsList.count();i++) + { + pArray->set(i,new KviKvsVariant(szConnectionsList.at(i))); + } + c->returnValue()->setArray(pArray); + } + return true; +} + KVSO_CLASS_FUNCTION(sql,queryLastInsertId) { CHECK_QUERY_IS_INIT |
