您的位置:首页 > 编程语言 > Qt开发

qt sql 数据库操作

2014-05-08 13:32 387 查看
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");


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: