作者tsohg (不争之争)
看板Database
标题[系统] 关於ODBC的版本
时间Tue Apr 12 20:27:53 2016
资料库名称: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看看
谢谢各位 <(_ _)>
--
麻烦你,鱼丸粗面..
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.251.79.158
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1460464079.A.828.html
1F:推 rockchangnew: 去FB的SQL PASS社团问问看 04/13 09:06
2F:→ tsohg: THANKS 04/13 10:29