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组件内,同时将 ...
随机推荐
- mysql 判断表字段或索引是否存在
判断字段是否存在: DROP PROCEDURE IF EXISTS schema_change; DELIMITER // CREATE PROCEDURE schema_change() BEGI ...
- XML语言基础1
这学期选修了XML技术这门课,没有发课本,于是参考了W3school教程,整理一下上课的内容. 1.XML简介 XML是一种标记语言,很类似HTML,它不是对HTML的替代,而是对HTML的补充.在大 ...
- EventBus使用详解(一)
一.概述 EventBus是一款针对Android优化的发布/订阅事件总线.主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间 ...
- SQL Server调优系列玩转篇二(如何利用汇聚联合提示(Hint)引导语句运行)
前言 上一篇我们分析了查询Hint的用法,作为调优系列的最后一个玩转模块的第一篇.有兴趣的可以点击查看:SQL Server调优系列玩转篇(如何利用查询提示(Hint)引导语句运行) 本篇继续玩转模块 ...
- InnoDB源码分析--事务日志(二)
原创文章,转载请标明原文链接:http://www.cnblogs.com/wingsless/p/5708992.html 昨天写了有关事务日志的一些基本点(http://www.cnblogs.c ...
- [SqlServer]创建链接服务器
把一个数据库中数据表中的内容,从一个SQL SERVER服务器 导出到另一个SQL Server服务器 不同服务器数据库之间的数据操作 --创建链接服务器 exec sp_addlinkedserv ...
- Java api 入门教程 之 JAVA的SYSTEM类
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成员变 ...
- 烂泥:KVM使用NAT联网并为VM配置iptables端口转发
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在前面的文章中,我们介绍KVM的虚拟机(以下简称VM)都是通过桥接方式进行联网的. 本篇文章我们来介绍KVM的VM通过NAT方式进行联网,并且通过配置I ...
- linux下如何打包压缩?解包解压?.tar文件.gz文件
===文件打包.压缩 ==打包 tar [root@521478.com]# tar -cvf etc1.tar /etc //c创建 v详细 f打包后文件名 [root@521478.com]# t ...
- Vim光标定位
*定位到指定行n: 输入"nG". 或输入"ngg". 或输入":n" 这里,n就是指定的行的行号.注意,有时候G=gg. *跳到屏幕顶部: ...