sql server 退出时这个"QODBCDriver:disconnect: Unable to disconnect datasource"解决方案
sql server 退出时这个"QODBCDriver::disconnect: Unable to disconnect datasource"
连接sql server 执行一些操作后,退出exe时,报错:如下
"QODBCDriver::disconnect: Unable to disconnect datasource" Error: "[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionClose (closesocket()). [Microsoft][ODBC SQL Server Driver][DBNETLIB]"
"QODBCDriver::cleanup: Unable to free connection handle" Error: "[Microsoft][ODBC 驱动程序管理器] 函数序列错误"
"QODBCDriver::cleanup: Unable to free environment handle" Error: "[Microsoft][ODBC 驱动程序管理器] 函数序列错误"
------解决方案--------------------
这个可能是驱动程序中的bug导致的
------解决方案--------------------
对了,你用的是qt来连接sql server的把,
能把你的语句贴出来看看不,有可能是语句写的有问题导致的
------解决方案--------------------
看起来是ODBC的问题,你用的ODBC是最新的驱动吗?用其他驱动可以吗比如OLEDB。
------解决方案--------------------
我查了一下,这种用odbc来连接sql server的,好像没有port参数的,直接在server中指定参数就可以:
"Driver={sql server};server=servername;database=dbname;uid=sa;pwd=pass;"
也就是类似于这样:server=192.168.1.16,1433
连接sql server 执行一些操作后,退出exe时,报错:如下
"QODBCDriver::disconnect: Unable to disconnect datasource" Error: "[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionClose (closesocket()). [Microsoft][ODBC SQL Server Driver][DBNETLIB]"
"QODBCDriver::cleanup: Unable to free connection handle" Error: "[Microsoft][ODBC 驱动程序管理器] 函数序列错误"
"QODBCDriver::cleanup: Unable to free environment handle" Error: "[Microsoft][ODBC 驱动程序管理器] 函数序列错误"
------解决方案--------------------
这个可能是驱动程序中的bug导致的
------解决方案--------------------
对了,你用的是qt来连接sql server的把,
能把你的语句贴出来看看不,有可能是语句写的有问题导致的
------解决方案--------------------
看起来是ODBC的问题,你用的ODBC是最新的驱动吗?用其他驱动可以吗比如OLEDB。
------解决方案--------------------
对了,你用的是qt来连接sql server的把,
能把你的语句贴出来看看不,有可能是语句写的有问题导致的
InitDBXMLConfig(); //读入配置文件,就是数据库名字,地址,用户名之类的dsn的值
m_db_odbc = QSqlDatabase::addDatabase("QODBC",tr("QODBC"));
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);
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());
}
我查了一下,这种用odbc来连接sql server的,好像没有port参数的,直接在server中指定参数就可以:
"Driver={sql server};server=servername;database=dbname;uid=sa;pwd=pass;"
也就是类似于这样:server=192.168.1.16,1433