17 #ifndef TIANCHI_TCDATABASE_H
18 #define TIANCHI_TCDATABASE_H
20 #include <tianchi/tcglobal.h>
24 #include <QStringList>
25 #include <QSqlDatabase>
27 typedef QHash<QString, QByteArray> TcParams;
40 static char typeFrom(QVariant::Type type);
42 static int dbType(
const QString& typeName);
43 static TcParams addParams(
const QStringList& keys,
44 const QList<QByteArray>& values);
48 void setDatabase(
int dbType,
49 const QString& hostName,
int hostPort,
50 const QString& dbName,
const QString& username,
51 const QString& password);
53 bool setDatabase(
const QString& typeName,
54 const QString& hostName,
int hostPort,
55 const QString& dbName,
const QString& username,
56 const QString& password);
58 void setDatabase(
int dbType,
59 const QString& dbName,
60 const QString& username = QString(),
61 const QString& password = QString());
63 bool setDatabase(
const QString& typeName,
64 const QString& dbName,
65 const QString& username = QString(),
66 const QString& password = QString());
87 QSqlDatabase m_handle;
95 QMultiHash<QString, QString> params;
97 QHash<QString, SQLContext> m_sqls;
98 void clearComment(QString& s);
101 QSqlQuery* prepare(
const QString& sqlID, TcParams prams,
102 QString& error,
int userNo = 0,
103 const QString& userID = QString(),
104 const QString& username = QString());
106 inline int dbType()
const {
return m_dbType; }
107 inline QString typeName()
const {
return m_typeName; }
108 inline QString hostName()
const {
return m_hostName; }
109 inline int hostPort()
const {
return m_hostPort; }
110 inline QString dbName()
const {
return m_dbName; }
112 inline QSqlDatabase handle()
const {
return m_handle; }
113 inline int sqlCount()
const {
return m_sqls.count(); }
131 inline bool isOpened()
const {
return m_handle.isOpen(); }
136 void loadEngine(
const QString& filename);
139 bool exec(
int& result,
const QString& sqlID,
140 const TcParams& prams,
142 const QString& userID = QString(),
143 const QString& username = QString());
145 bool exec(QVariantList& list,
146 const QString& sqlID,
147 const TcParams& params,
149 const QString& userID = QString(),
150 const QString& username = QString());
152 int exec(
int& result, QVariantList& list,
153 const QString& sqlID,
const TcParams& params,
155 const QString& userID = QString(),
156 const QString& username = QString());
158 int exec(
int& result, QList<QByteArray>& list,
159 const QString& sqlID,
const TcParams& params,
161 const QString& userID = QString(),
162 const QString& username = QString());
165 #endif // TIANCHI_TCDATABASE_H