我把INSERT和UPDATE两个语句一次执行了。(自动提交状态)
应该也执行成功了,但再次执行SELECT语句就出现
“无效的游标状态”错误。
如果分开执行INSERT和UPDATE再执行SELECT却不会出错。而且好象如果把2句一次执行,在手动提交的情况下,
再执行SELECT却不会出错。

解决方案 »

  1.   

    INSERT和UPDATE 
     
    后面加一个go
      

  2.   

    我没有成功,我在INSERT和UPDATE 后面+了"GO"
    select到是不出错了,但
    INSERT和UPDATE没有效果,好象没有执行一样.
      

  3.   

    哦.我尽量吧.我用的ODBC
    我把INSERT和UPDATE两个语句中间用空格分开,用SQLExecDirect一次执行的.
    然后就用SELECT查看结果.然后就出现“无效的游标状态”错误。
    感觉是一次执行2个语句的问题,因为分开执行后SELECT没有问题.
    但是我把提交变成手动提交(用了SQL_AUTOCOMMIT_OFF)后在执行SELECT好象就
    不会出现“无效的游标状态”这个错误了。
      

  4.   

    是这样,你使用insert的时候,在insert语句后面加go,使用update的时候,在update语句后面加go,然后再去执行select语句,这样就不会出现你说的无效的游标查询问题了。
      

  5.   

    哦。我再去试试。谢谢guoli0813(峥狼)
      

  6.   

    晕。说我‘GO’附近有语法错误。我初学,这个GO怎么加?????
    INSERT TABLE4 (ID,CIDS,DATE) VALUES (200,0,GETDATE()) go update TABLE4 set CIDS=CIDS+1,DATE=GETDATE() where ID=160 go
    这样加对吗?说我错误啊
      

  7.   

    GO要单独在一行里
    INSERT TABLE4 (ID,CIDS,DATE) VALUES (200,0,GETDATE()) 
    goupdate TABLE4 set CIDS=CIDS+1,DATE=GETDATE() where ID=160 
    go
      

  8.   

    谢谢,0sunhonglei2004() 和sp4(1) ,我想他们都那么说,看来应该是加“GO”。
    我也没什么代码,就是执行单个的语句而已,只是要自己把字符串拼接成一个语句。
    实在不行就准备用非自动提交方式,我发现非自动提交情况下没有GO也能正确执行。