问题1:连接SQL Server时,使用如下方式
- 方式1
m_db = QSqlDatabase::addDatabase("QODBC");
m_db.setHostName("localhost");
m_db.setDatabaseName("Learn");
m_db.setUserName("sa");
m_db.setPassword("123456");
报错: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect
原因:这种需要数据源dsn,但是本地没有
解决:打开C:\Windows\System32\odbcad32.exe,添加用户DSN,数据源的名字就是setDatabaseName要设置的名字,设置过后就可以正确连接。(如果需要远程访问本地的数据库,需要设置系统DSN)
- 方式2
// 无需设置DSN数据源,直接就可Open
QString conn = QString("DRIVER={SQL SERVER};SERVER=%1;DATABASE=%2;UID=%3;PWD=%4;")
.arg("localhost")
.arg("Learn")
.arg("sa")
.arg("123456");
m_db.setDatabaseName(conn);
问题二:连接MYSQL时,使用如下方式
m_db = QSqlDatabase::addDatabase("QMYSQL");
m_db.setHostName("localhost");
m_db.setDatabaseName("Learn");
m_db.setUserName("root");
m_db.setPassword("123456")