aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules
diff options
context:
space:
mode:
authorGravatar Noldor2010-12-10 15:42:18 +0000
committerGravatar Noldor2010-12-10 15:42:18 +0000
commita067986821a46de3af5c92805bf22fbae8482979 (patch)
tree71e5b6226cf9c6224f2a635eafec83c982c6936f /src/modules
parent/ignore alias: added the ability to choose which flags you want to see enabled; (diff)
downloadKVIrc-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')
-rw-r--r--src/modules/objects/class_sql.cpp29
-rw-r--r--src/modules/objects/class_sql.h1
2 files changed, 30 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
diff --git a/src/modules/objects/class_sql.h b/src/modules/objects/class_sql.h
index ae4d3e076..0604ad99b 100644
--- a/src/modules/objects/class_sql.h
+++ b/src/modules/objects/class_sql.h
@@ -49,6 +49,7 @@ protected:
return *m_pCurrentSQlQuery;
};
bool setConnection(KviKvsObjectFunctionCall *c);
+ bool connectionNames(KviKvsObjectFunctionCall *c);
bool features(KviKvsObjectFunctionCall *c);
bool queryLastInsertId(KviKvsObjectFunctionCall *c);