QT 数据库编程一
QT如果要进行网络编程首先需要在.pro中添加如下代码:QT += network
//logindlg.h
#ifndef LOGINDLG_H
#define LOGINDLG_H #include <QDialog>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton> class loginDlg : public QDialog
{
Q_OBJECT
public:
explicit loginDlg(QWidget *parent = ); signals: public slots: private:
QLabel *label1,*label2,*label3,*label4;
QLineEdit *edit1,*edit2,*edit3,*edit4;
QPushButton *btn1,*btn2;
private slots:
void btn1_click();
void btn2_click();
public:
QString username;
QString userpass;
QString dbname;
QString ipaddr;
/*判断用户是否点击登录按钮*/
bool islogin; }; #endif // LOGINDLG_H
//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H #include <QMainWindow>
#include <QMenu>
/*QMenuBar:菜单栏*/
#include <QMenuBar>
#include <QAction>
#include <QCloseEvent>
#include <QMdiArea> #include "vmysql.h" class MainWindow : public QMainWindow
{
Q_OBJECT public:
MainWindow(QWidget *parent = );
~MainWindow();
private:
Vmysql *sqlhelper;
QMenu * menu1;
QMenu * menu2;
QMenu * menu3;
QMenu * menu4;
QAction *login_in,*login_out,*quit1;
QAction *addstation,*addstationcontrl,*addMSC;
QAction *delstation,*delstationcontrl,*delMSC;
QAction *sestation,*sestationcontrl,*seMSC;
QAction *upstation,*upstationcontrl,*upMSC,*exscript;
QAction *cascade1,*parallel;
QAction *helper,*mabout;
QMdiArea *mdiarea1; /*初始化菜单项*/
void initmenubar();
/*退出函数*/
void closeEvent(QCloseEvent *event);
/*未登录设置所有SQL按钮不可用*/
void close_action();
/*设置所有SQL按钮可用*/
void open_action();
/*执行SQL操作*/
void exec_query(const char *strsql);
/*判断SQL操作的类型*/
bool judge_sqltype(const char *strsql);
/*创建显示view*/
void display_view(const char *actionname,QStandardItemModel *model); private slots:
//登录事件
void login_inclick();
//注销事件
void login_outclick();
//退出事件
void quit_click();
/*添加基站*/
void add_station();
/*添加基站控制器*/
void add_stationcontrl();
/*添加MSC*/
void add_MSC();
/*删除基站*/
void del_station();
/*删除基站控制器*/
void del_stationcontrl();
/*删除MSC*/
void del_MSC();
/*查询基站*/
void sel_station();
/*查询基站控制器*/
void sel_stationcontrl();
/*查询MSC*/
void sel_MSC();
/*修改基站*/
void update_station();
/*修改基站控制器*/
void update_stationcontrl();
/*修改MSC*/
void update_MSC();
/*执行脚本*/
void exec_script();
/*层叠窗口*/
void cascade_window();
/*并列窗口*/
void parallel_window();
/*帮助*/
void helper_click();
/*关于*/
void mabout_click(); }; #endif // MAINWINDOW_H
//scriptdlg.h
#ifndef SCRIPTDLG_H
#define SCRIPTDLG_H #include <QDialog>
#include <QLabel>
#include <QTextEdit>
#include <QPushButton> class ScriptDlg : public QDialog
{
Q_OBJECT
public:
explicit ScriptDlg(QWidget *parent = );
QString strsql;
bool isexec; signals: public slots:
private:
QLabel *label1;
QTextEdit *tedit1;
QPushButton *btn1,*btn2;
private slots:
void btn1_click();
void btn2_click(); }; #endif // SCRIPTDLG_H
//vmysql.h
#ifndef VMYSQL_H
#define VMYSQL_H /*mysql属于TCP/IP协议,所以需要使用socket,
* windows下的socket与linux下不同,在windows.h文件下
* SOCKET listen_st;--windows下定义socket描述符*/
#include <windows.h> #include <C:/mysql/include/mysql.h>
#include <QStandardItemModel> /*封装所有和mysql相关函数*/
class Vmysql
{
public:
Vmysql();
~Vmysql();
/*连接数据库*/
int sql_connect(const char *hostname,const char *username,const char *passwd,const char *dbname);
/*断开数据库连接*/
void sql_disconnect();
/*执行SQL更新*/
int sql_exec(const char *strsql);
/*执行SQL查询*/
int sql_query(const char *strsql,QStandardItemModel **model);
/*错误信息*/
const char *ger_error();
private:
MYSQL mysql1;
MYSQL *connection;
char errorbuf[];
}; #endif // VMYSQL_H
QT 数据库编程一的更多相关文章
- QT 网络编程一
QT如果要进行网络编程首先需要在.pro中添加如下代码:QT += network 在头文件中包含相关头文件 #include <QHostInfo> #include <QNetw ...
- QT核心编程之Qt线程 (c)
QT核心编程之Qt线程是本节要介绍的内容,QT核心编程我们要分几个部分来介绍,想参考更多内容,请看末尾的编辑推荐进行详细阅读,先来看本篇内容. Qt对线程提供了支持,它引入了一些基本与平台无关的线程类 ...
- qt数据库多线程问题的解决(QSqlDatabase只能在创建它的线程中使用)
Qt数据库由QSqlDatabase::addDatabase()生成的QSqlDatabase只能在创建它的线程中使用, 在多线程中共用连接或者在另外一个线程中创建query都是不支持的几乎国内没有 ...
- Qt添加驱动——Qt数据库之添加MySQL驱动插件
Qt数据库之添加MySQL驱动插件(1) 现在可用的数据库驱动只有3种,在Qt中,我们需要自己编译其他数据库驱动的代码,让它们以插件的形式来使用.下面我们就以现在比较流行的MySQL数据库为例,说明一 ...
- Qt数据库_资料
1. QT笔记_数据库总结(一)-rojian-ChinaUnix博客.html http://blog.chinaunix.net/uid-28194872-id-3631462.html (里面有 ...
- Task C# 多线程和异步模型 TPL模型 【C#】43. TPL基础——Task初步 22 C# 第十八章 TPL 并行编程 TPL 和传统 .NET 异步编程一 Task.Delay() 和 Thread.Sleep() 区别
Task C# 多线程和异步模型 TPL模型 Task,异步,多线程简单总结 1,如何把一个异步封装为Task异步 Task.Factory.FromAsync 对老的一些异步模型封装为Task ...
- Qt数据库 QSqlTableModel实例操作(转)
本文介绍的是Qt数据库 QSqlTableModel实例操作,详细操作请先来看内容.与上篇内容衔接着,不顾本文也有关于上篇内容的链接. Qt数据库 QSqlTableModel实例操作是本文所介绍的内 ...
- C/C++ Qt 数据库与TreeView组件绑定
在上一篇博文<C/C++ Qt 数据库QSql增删改查组件应用>介绍了Qt中如何使用SQL操作函数,并实现了对数据库的增删改查等基本功能,从本篇开始将实现数据库与View组件的绑定,通过数 ...
- C/C++ Qt 数据库与TableView多组件联动
Qt 数据库组件与TableView组件实现联动,以下案例中实现了,当用户点击并选中TableView组件内的某一行时,我们通过该行中的name字段查询并将查询结果关联到ListView组件内,同时将 ...
随机推荐
- CSS Sprites (CSS图像拼合技术)教程工具
什么是CSS Sprites? “Sprite”(精灵)这个词在计算机图形学中有它独特的定义,由于游戏.视频等画质越来越高,必须有一种技术可以智能的处理材质和贴图,并且要 同时保持画面流畅.“Spri ...
- 揣摩实现一个ioc容器需要做的事情
思路: ioc框架的核心就是管理bean的生命周期,bean的生命周期包括:创建,使用,销毁. 创建 容器在创建一个bean的实例之前必须要解决以下问题:第一个问题: 创建bean的信息如何提供给你容 ...
- Third glance in Go
在Go語言裏關於數組(Array),切片(Slice)和映射表(Map)的使用是非常常見的.有過其他語言編程背景的人會比較熟悉一下,但是也是因爲過於的熟悉,從而導致一個慣性思維,往往就會踢到“石頭”, ...
- jquery.validate remote的用法
1,远程返回数据时,一定要返回"true"或者"false",否则就是永远就是验证不通过. 2,remote有两种方式,如下就介绍remote与PHP间的验证( ...
- Linux学习--------二
Linux基础知识 Linux文件系统为一个倒转的单根树状结构文件系统的根为"/" 文件系统严格区分大小写路径 使用"/"分割(windows使用"\ ...
- shell脚本的执行
shell脚本有两种执行方式,一种是直接执行,一种是使用$source 或.命令执行 直接执行 直接执行shell脚本,bash会在当前bash下新建一个子bash进程用来执行shell脚本,此时脚本 ...
- x01.Game.Main: 从零开始
一切从零开始,一切皆有可能. 浅墨,90后,<逐梦之旅>深入浅出,堪比大师. 1.安装 DXSDK_June10.exe 或更新版本. 2.运行 vs2012,新建 VC Win32 空项 ...
- Android中设置TextView的颜色setTextColor
tv.setTextColor(Color.parseColor("#FFFFFF")); tv.setTextColor(Color.WHITE); tv.setTextColo ...
- Redis-benchmark测试Redis性能
Redis-benchmark是官方自带的Redis性能测试工具,可以有效的测试Redis服务的性能. 使用说明如下: Usage: redis-benchmark [-h <host>] ...
- JDK环境变量详细讲解
首先,你应该已经安装了 java 的 JDK 了,笔者安装的是:jdk-8u65-windows-x64 下载地址: http://www.oracle.com/technetwork/java/ja ...