Qt 通过ODBC局域网内连接SQL server 2008

1.首先服务器安装sql server数据库

2.熟读Qt的数据库连接类介绍QSqlDatabase、QSqlQuery、QSqlError

3.找到D:\Qt\4.8.5\plugins\sqldrivers目录下的qsqlodbcd4.dll和qsqlodbc4.dll库,拷贝到自己的程序路径下\bin\sqldrivers目录下.没有就创建一个

4.Qt类测试是否支持ODBC驱动

// 	qDebug() << "Available drivers:";
// 	QStringList drivers = QSqlDatabase::drivers();
// 	foreach(QString driver, drivers)
// 	qDebug() << "\t" << driver;
// 	QSqlDatabase dbc = QSqlDatabase::addDatabase("QODBC");
// 	qDebug() << "ODBC driver valid?" << dbc.isValid();
输出结果就是支持的驱动, dbc返回true,表示ODBC是可以使用的.

5.配置文件编写DB.xml

<?xml version="1.0" encoding="UTF-8"?>
<db>
    <item value="BShan" name="dbName"/>
    <item value="服务器IP地址" name="host"/>
    <item value="数据库用户名字" name="user"/>
    <item value="密码" name="passwd"/>
    <item value="默认端口1433" name="port"/>
</db>
6.之后读取配置文件.(好像之前有记录,可以查看一下配置文件读写)

7.连接数据库

InitDBXMLConfig();

	m_db_odbc = QSqlDatabase::addDatabase("QODBC",tr("QODBC"));
	//QString dsn = "sqlserver";//报错,驱动与程序之间不匹配
	QString dsn = QString("Driver={sql server};SERVER=%1;PORT=%2;DATABASE=%3;UID=%4;PWD=%5;").arg(m_host).arg(m_port).arg(m_dbName).arg(m_user).arg(m_passwd);  //dsn的参数就是读取配置文件信息.
	m_db_odbc.setDatabaseName(dsn);
	if (!m_db_odbc.open()) 
	{
		QSqlError err = m_db_odbc.lastError();
		m_db_odbc.close();
		QMessageBox::critical(NULL,tr("提示"),err.text());
	}



你可能感兴趣的:(Qt 通过ODBC局域网内连接SQL server 2008)