1.Qt连接Access数据库方法
1)设置数据库连接信息
- <span style="font-size:12px;">QString sDbNm = "F:/data.accdb";//数据库文件
- db = QSqlDatabase::addDatabase("QODBC");//设置数据库驱动
- QString dsn = QString("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; FIL={MS Access};DBQ=%1;").arg(sDbNm);//连接字符串
- db.setDatabaseName(dsn);//设置连接字符串
- db.setUserName("");//设置登陆数据库的用户名
- db.setPassword("111");//设置密码</span>
2)操作数据库数据
- <span style="font-size:12px;"> QStringList tables;
- QString tabName,sqlString;
- tables = db.tables(QSql::Tables);//获取表信息
- for (int i = 0; i < tables.size(); ++i)</span>
- <span style="font-size:12px;">{
- tabName = tables.at(i);//获取第i个表信息
- qDebug()<<tabName;
- sqlString = "select * from " + tabName;
- QSqlQuery q(sqlString); //QSqlQuery q("select * from product");
- QSqlRecord rec = q.record();
- int fieldCount = rec.count();
- qDebug() << "Number of columns: " << fieldCount;
- int i;
- QString fieldName;
- for(i=0;i<fieldCount;i++){
- fieldName = rec.fieldName(i);
- QByteArray ba = fieldName.toLatin1();
- char *tmp = ba.data();
- qDebug() <<tr("字段名:") << fieldName <<"\t";
- }
- cout<<endl;
- while(q.next()){
- for(int i=0;i<fieldCount;i++){
- QString strTmp = q.value(i).toString();
- QByteArray a = strTmp.toLatin1();
- char *data = a.data();
- qDebug()<<tr("姓名:")<<strTmp;
- qDebug()<<"\t";
- }
- cout<<endl;
- }
- }</span>
2.Qt连接SQL Server数据库方法
#define DB_SERVER (QProcessEnvironment::systemEnvironment().value("COMPUTERNAME") + "\\SQLEXPRESS")
- db = QSqlDatabase::addDatabase("QODBC");
- QString dsn = QString("DRIVER={SQL SERVER}")
- + ";SERVER=" + DB_SERVER
- + ";UID=" + ""
- + ";PWD=" + ""
- + ";DATABASE=student";
- //如果已经设定DSN,可以写为QString::fromLocal8Bit("SQLSERVER_DSN")
- qDebug() << "name = " << DB_SERVER << "\n";
- db.setDatabaseName(dsn);
- //即使dsn中已经设置了UID和PASSWD,仍然需要执行setUserName和setPassword的步骤
- db.setUserName("");
- db.setPassword("");
- bool r = db.open();//打开数据库
- 数据库操作通ACCESS数据库操作。