码迷,mamicode.com
首页 > 数据库 > 详细

qt sql 数据库操作

时间:2014-05-09 05:26:39      阅读:414      评论:0      收藏:0      [点我收藏+]

标签:style   ext   color   int   c   com   

1.  连接数据库

mysql连接:

  QSqlDatabase mysql_db=QSqlDatabase::addDatabase("QMYSQL","mysql_connecttion2");

mysql_db.setHostName("127.0.0.1");
mysql_db.setDatabaseName("数据库名称");
mysql_db.setUserName("用户名");
mysql_db.setPassword("用户密码");
mysql_db.setPort(数据库端口);// 默认3306
if(!mysql_db.open())
{

printf("mysql_db%s\n",qPrintable(mysql_db.lastError().text()));
exit(2);
}
else
{
qDebug("mysql_db连接成功");
mysql_db.exec("SETNAMES‘GBK‘");
}
sqlserver连接:
sqlserver_db=QSqlDatabase::addDatabase("QODBC","sqlserver_connecttion2");
sqlserver_db.setHostName("127.0.0.1");
QStringdsn=QString::fromLocal8Bit("DRIVER={SQLSERVER};SERVER=127.0.0.1;DATABASE=数据库名");
sqlserver_db.setDatabaseName(dsn);
sqlserver_db.setUserName(用户名称);
sqlserver_db.setPassword(用户密码);
if(!sqlserver_db.open())
{
printf("sqlserver_db%s\n",qPrintable(sqlserver_db.lastError().text()));
exit(2);
}
else
{
qDebug("sqlserver连接成功");

sqlserver_db.exec("SETNAMES‘GBK‘");//访问windows服务器时候使用,中文字符处理
}

2. 数据库发起重连
if(QSqlDatabase::contains("mysql_connecttion2"))
{
mysql_db.commit();
mysql_db.close();
}
if(!mysql_db.open())
{
printf("mysql_db%s\n",qPrintable(mysql_db.lastError().text()));
open_mysql();
}
else
{
qDebug("mysql_db连接成功");
mysql_db.exec("SETNAMES‘GBK‘");
}

3. 数据库操作
mysql_db=QSqlDatabase::database("mysql_connecttion2");
if(mysql_db.isOpen()&&mysql_db.isValid()&&mysql_db.isDriverAvailable("QMYSQL"))
;//qDebug()<<"mysqlisopen";
else
{
qDebug()<<"mysqlisnotopen";
open_mysql();
}
//查询数据
QSqlQueryquery(mysql_db);
query.prepare("select * from tmpt wheret ...;");
if(query.exec())
{
//提取表中的数据
while(query.next())
{
DataStruct data;
data.*=query.value(0).toString();
data.*=query.value(1).toInt();
data.*=query.value(2).toDouble();

}
//删除表中的数据
query.clear();
foreach(DataStructdata,*datalist)
{
query.prepare("delete from tmpt where ...;");
query.bindValue(...);
if(query.exec())
{
qDebug()<<"删除"<<data.user;
}
else
{
qDebug()<<tr("删除历史数据失败")<<query.lastError().text();
open_mysql();
}
}
}
else
{
qDebug()<<query.lastError().text();
open_mysql();
}
query.clear();

4. 关闭数据库
mysql_db.commit();
mysql_db.close();
if(QSqlDatabase::contains("mysql_connecttion2"))
QSqlDatabase::removeDatabase("mysql_connecttion2");
sqlserver_db.commit();
sqlserver_db.close();
if(QSqlDatabase::contains("sqlserver_connecttion2"))
QSqlDatabase::removeDatabase("sqlserver_connecttion2");


qt sql 数据库操作,布布扣,bubuko.com

qt sql 数据库操作

标签:style   ext   color   int   c   com   

原文地址:http://www.cnblogs.com/lvdongjie/p/3715985.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!