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组件内,同时将 ...
随机推荐
- 8、需求分析师要阅读的书籍 - IT软件人员书籍系列文章
需求分析是软件项目开始阶段重要的一步.而需求分析是项目经理或产品经理需要经历的一环,所以说需求分析是项目经理或产品经理需要具备的知识.但是,项目角色中却分离出了需求分析师这个角色,也就是说,在大型的或 ...
- Java字符串中常见的10个问题
下面是Java中10个最常见的关于字符串的问题. 怎样比较字符串?使用==还是equals() 简单的说,“==”用于判断引用是否相等,equals()用于判断值是否相等.除非你要比较两个字符串是否是 ...
- Linux运维常用命令总结
1.删除0字节文件 find -type f -size 0 -exec rm -rf {} \; 2.查看进程 按内存从大到小排列 PS -e -o "%C : %p : %z ...
- Spring boot 基于Spring MVC的Web应用和REST服务开发
Spring Boot利用JavaConfig配置模式以及"约定优于配置"理念,极大简化了基于Spring MVC的Web应用和REST服务开发. Servlet: package ...
- RTP、RTCP协议学习-2015.04.15
最近做视频编解码部分,传输采用RTP协议.对学习做个记录 1.简介 实时传输协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议,它是由IETF的多媒体传输工 ...
- 谷歌/微软/必应web页面免费翻译插件
随着网络时代的日益壮大,现在我们经常需要浏览一些各种外语的网页,或者是查阅资料帮助我们解决问题.更多的时候还是头疼在语言障碍上,正所谓"它认识你,你不认识它啊."谷歌和微软两个企业 ...
- Linux磁盘管理之磁盘结构、概念、原理01
一.磁盘的分类 磁盘主要有IDE.SATA.SCSI.IDE是比较老的硬盘,数据速度比较慢:SATA是现在用的比较多的,台式机.笔记本大多都用的SATA硬盘:SCSI硬盘速度最快,但是价格相对较高. ...
- C#中标准Dispose模式的实现与使用(条目17 实现标准的销毁模式)
实现了Dispose模式与实现了IDisposable接口的区别就是:IDisposable的实现的可靠性(释放相关资源)要靠编程人员来解决(你确信你从来都一直调用了Dispose(Close)方法吗 ...
- Ezchip Tilera Tile-Mx100: Der 100-ARM-Netzwerkprozessor
Ezchip Tilera Tile-Mx100: Der 100-ARM-Netzwerkprozessor ARM-Kerne statt VLIW-Einheiten: Tileras neue ...
- [转]教你一招 - 如何给nopcommerce增加新闻类别模块
本文转自:http://www.nopchina.net/post/nopchina-teach-newscategory.html nopcommerce的新闻模块一直都没有新闻类别,但是很多情况下 ...