[系统] 关于ODBC的版本

楼主: tsohg (不争之争)   2016-04-12 20:27:53
数据库名称:MSSQL
数据库版本:MSSQL 2012
作业平台:WIN 2012 R2
问题描述:
抱歉 请问一下
近期遇到一个问题是
在 WINDOWS 2012 R2 ODBC32 (6.3.9600.17415)
用 ODBC去连 MSSQL 2012 连线有建立成功而且也可以成功 CREATE DB 但是要做接下来的动作却Fail
程式示意如下 (仅做逻辑表示 语法有误见谅)
functionXX(const unsigned char*SQLStmt)
{
...
SQLExecDirect(StmtHandle,(SQLCHAR*)SQLStmt,SQL_NTS);
...
}
然后呼叫的部份:
functionXX("CREATE DATABASE db_test"); //step1
functionXX("ALTER DATABASE db_test MODIFY FILE(NAME=db_test, SIZE=20)"); //step2
跑到step2 就报错
SQLState='24000', Error message: [Microsoft][ODBC SQL Server Driver]Invalid cursor state
目前就只有在这个环境下会出错
原先以为是SQL SERVER的设定造成 但是后来查了一些资料看起来比较像是ODBC这边的问题
我有问到的是说建议在原本呼叫那行之前 加一行
SQLFreeStmt(StmtHandle, SQL_CLOSE); //prepend
SQLExecDirect(StmtHandle,(SQLCHAR*)SQLStmt,SQL_NTS); //original
但因为没有太多机会在production 机器上做测试 所以想先确定一下方向
所以想请问
(1) 有没有人有遇过类似经验,或是看得出来大概是什么问题吗?
(2) 或是有人知道怎么做可以把ODBC更新成 6.3.9600.17415 这个版本 我想local reproduce看看
谢谢各位 <(_ _)>
作者: rockchangnew (rock)   2016-04-13 09:06:00
去FB的SQL PASS社团问问看
楼主: tsohg (不争之争)   2016-04-13 10:29:00
THANKS

Links booklink

Contact Us: admin [ a t ] ucptt.com