匿名用户
1级
2014-11-13 回答
项目开发时候要看着表结构写,实在是受不了phpmyadmin或者是navicat,就用qt写了一个看表结构的小玩意,主要是7a686964616fe59b9ee7ad9431333335343364看表字段的注释。
使用过程中发现过一段时间,连接就会被mysqld自动断开,就在每次查询前多执行一个“select 1;”,反正是开发时候用,浪费资源就浪费吧。
1 #include
2 #include "mainwindow.h"
3
4 int main(int argc, char *argv[])
5 {
6 QApplication a(argc, argv);
7 MainWindow w;
8 w.show();
9
10 return a.exec();
11 }
1 #ifndef MAINWINDOW_H
2 #define MAINWINDOW_H
3
4 #include
5 #include
6
7 class MainWindow : public QMainWindow
8 {
9 Q_OBJECT
10
11 public:
12 MainWindow(QWidget *parent = 0);
13 ~MainWindow();
14
15 private slots:
16 void databaseRefleshActionTriggered();
17
18 void tableRefleshActionTriggered();
19 void tableActionGroupTriggered(QAction *);
20
21 void removeTab(int i)
22 {
23 tabWidget->removeTab(i);
24 }
25
26 private:
27 QSqlQuery *query(const QString &sql)
28 {
29 if ((!db.isOpen() || !QSqlQuery("select 1;", db).isActive()) && !db.open())
30 QMessageBox::warning(this, "Error", db.lastError().text());
31
32 return new QSqlQuery(sql, db);
33 }
34
35 private:
36 QWidget *widget;
37 QVBoxLayout *layout;
38 QTabWidget *tabWidget;
39 QMap commentViews;
40
41 QMenu *databaseMenu;
42 QAction *databaseRefleshAction;
43 QActionGroup *databaseActionGroup;
44
45 QMenu *tableMenu;
46 QAction *tableRefleshAction;
47 QActionGroup *tableActionGroup;
48
49 QSqlDatabase db;
50 };
51
52 #endif // MAINWINDOW_H