1. 使用odbc manager配置好dsn。
2. 通过odbc访问数据库
dbc = new QSqlDatabase(QSqlDatabase::addDatabase("QODBC"));
dbc->setDatabaseName("testsqlserver");
dbc->setUserName("sa");
dbc->setPassword("test@123");
if(dbc->open()){
cout << "连接成功!";
} else{
cout << dbc->lastError();
cout << "连接失败! ";
}
//查询数据库
query = new QSqlQuery(*dbc);
query->exec("SELECT * FROM dbo.t1;");
query->first();
cout << query->value(0).toString();
cout << query->lastError();
3. 返回结果
---> 连接成功!
QSqlQuery::value: not positioned on a valid record
---> "" //这个是返回值 --!
---> QSqlError("0", "QODBC3: Unable to fetch first", "[iODBC][Driver Manager]Optional feature not implemented")
使用其它工具通过odbc访问是正常的,并且在windos中也是可以正常访问的。
所以,是哪儿出了问题?是qt对mac的支持问题吗?