1、首先查看有没有MySQL的驱动。

一般Qt开始时都没有mysql这个驱动。显示 MYSQL driver is not valid。这里 我们只讨论Qt5.2.1版本的,如果是版本的话,可能会很麻烦。要去编译mysql驱动。所以我建议还不如直接卸载了,用最近的呢。

Qt5.2.1版本如何解决没有MYSQL驱动这个问题呢?很简单,如果你的电脑里面没有暗转mysql数据库,就去安装个。安装完mysql,可能要加环境变量。编辑Path,在后面加上C:\ProgramFiles\MySQL\MySQLServer5.7\bin 。
然后到安装目录,将c:\Program File\MySQL\MySQL Server 5.7\lib\中的libmysql.dll这个文件拷贝到D:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin 目录下。Ps:以上的目录是我电脑的安装目录,具体要根据你自己的电脑。


mysql安装好后,自己就可以直接用dos测一下了:

mysql -u 用户名 -p密码 -h 地址 例:mysql -u root -p123 -h 127.0.0.1

这里可以介绍几个mysql简单的命令: show databases;//显示数据库 usemysql ;//选择那个数据库 show table ;//显示表 describe 表名;//显示某个表的字段说明


<span style="font-family:SimSun;font-size:18px;">db.setHostName(sIp);  
db.setPort(iPort);
db.setUserName(sUserNm);
db.setPassword(sPwd);
//连接sql服务器
bool r = db.open();
if (r)
{
qDebug() << "SQL Server 2000 Connect OK!";

/* 计算当前表中id*/
QSqlQuery query1 = QSqlQuery(db);
query1.clear();
query1.prepare("select top 1 ID from SQL_2000 order by ID desc");
bool a = query1.exec();
int id;
if (a)
{
while(query1.next())
{
id = query1.value(0).toInt();
}
}

/*插入数据*/
QSqlQuery query2 = QSqlQuery(db);
QString sq1 = QObject::tr("insert into SQL_2000(Id,Ip,Port,UserName,Password,DbType,DbName)"
"values (?, ?, ?, ?, ?, ?, ?)");
bool b = query2.prepare(sq1);
if(b)
{
qDebug() << "insert data success!";
}
query2.bindValue(0, id+1);
query2.bindValue(1, sIp);
query2.bindValue(2, iPort);
query2.bindValue(3, sUserNm);
query2.bindValue(4, sPwd);
query2.bindValue(5, sDbType);
query2.bindValue(6, sDbNm);

/*查询数据*/
QSqlQuery query3 = QSqlQuery(db);
query3.prepare("select * from SQL_2000 where Id=1");
bool c = query3.exec();
if (c)
{
qDebug() << "select data success!";
while(query3.next())
{
qDebug() << query3.value(0);
qDebug() << query3.value(1);
qDebug() << query3.value(2).toInt();
}
}
else
{
qDebug() << query3.lastError().text().data();
}

/*删除数据*/
QSqlQuery query4 = QSqlQuery(db);
query4.prepare("delete from SQL_2000 where Id=1");
bool d = query4.exec();
if (d)
{
qDebug() << "delete data success!";
}
else
{
qDebug() << query3.lastError().text().data();
}
}
else
{
QMessageBox::information(this, tr("提示"), tr("Sql Server数据库连接失败!"), tr("确定"));
qDebug() <<"error_SqlServer:\n" << db.lastError().text();
}

db.close(); </span>





更多相关文章

  1. 如何以小时为单位从oracle数据库中获取数据
  2. phthon 连接sql server数据库执行存储过程报错,求大侠解决
  3. Postgresql数据库安装问题,找不到configure
  4. delphi+sql server 数据库死锁问题。高分求解!!!!!
  5. 牛客网数据库SQL实战(1-5)
  6. 数据库的认识+SQL
  7. Linux操作系统Centos7.2版本搭建Apache+PHP+Mysql环境
  8. mysql数据库大规模数据读写并行时导致的锁表问题
  9. SQL数据库基础(四)

随机推荐

  1. Android消息机制——Handler、Looper、Me
  2. Android实现ImageView图片双击放大及缩小
  3. Android(安卓)中使用 AsyncTask 异步读取
  4. android 是通过 ksoap 连接 java xfire w
  5. Android之——自动挂断电话的实现
  6. Android UI开发第三十五篇——AppCompat
  7. Android(安卓)>> 26. RecyclerView(一)
  8. 通过eclipse查看Android源代码(Java)
  9. 我所理解的Android模块化(二)——模块通信
  10. android中的push机制实现:android push no