打开表后返回所有行---->向下拖动滚动条-->直到显示出所有数据-->修改

解决方案 »

  1.   

    To work around this problem, use any one of these methods: Scroll down to the end of the table before you make any changes to the data in the grid. 
    Before you initiate a failover, make sure that you are not displaying the results of any table or view. 
    Use Transact-SQL, ISQL_W or Query Analyzer to write a query to update the row. 
    Use an alternative interface to update the row (for example, Microsoft Access or Microsoft Query).
      

  2.   


    FAQ:浅析“firehose”现象
    当我们在使用Ado访问Sql Server数据库,使用事务时,有时会出现如下错误:
    "you couldn't begin a transaction in firehose."
    那么这个firehose到底是一个什么东东呢?
    "firehose"指的是一个只读的游标模式。当我们打开recordset时没有指定游标
    类型,则Recordset会以向前的游标打开,与sql Server连用时,我们称之为"firehose",之所以称为"firehose",是因为此连接会一直打开,查询结果会尽快打开,而在这种只读方式下是不能执行事务的。
    如以下几个例子的出错原因都是由于在"firehose"模式。
    1)
    set dbConn=Server.createObject("adodb.connection")
    set dbCmd=Server.CreateObject("adodb.Command")
    dbConn.Open "DSN=SQLForum;UID=sa;PWD=;" 
    dbConn.BeginTrans
    RS.Open "SELECT * FROM Message", dbConn
    Set dbCmd.ActiveConnection = dbConn
        
    以上语句会提示如下错误信息:
    Unspecified error
        
    出错的原因就是因为command对象的ActiveConnection的游标模式是readOnly的。
    2)
        
    set dbConn=Server.createObject("adodb.connection")
    dbConn.Open "DSN=SQLForum;UID=sa;PWD=;" 
    RS.Open "SELECT * FROM Message", dbConn
    dbConn.BeginTrans
        
    以上程序会提示你如下错误信息:
    Cannot start transaction while in firehose mode.
        
    出错的原因是:connection是readOnly的。
        
    3)
        
    set dbConn=Server.createObject("adodb.connection")
    set dbCmd=Server.CreateObject("adodb.Command")
    dbConn.Open "DSN=SQLForum;UID=sa;PWD=;" 
    RS.Open "SELECT * FROM Message", dbConn
    Set dbCmd.ActiveConnection = dbConn
    dbConn.BeginTrans
        
    以上程序会提示你如下出错信息:
    Cannot start transaction because more than one hdbc is in use.
        
    原因也是由于connection是只读的。
        
    改变“firehose”的方法有几种如下方法:
    1.设定Connection的游标类型不是向前的只读的。
    2。在开始事务之前要关闭使用同一连接的RecordSet对象。
      

  3.   

    BELOW FROM MSDN,Symptoms
    If you attempt to make changes to a row in a table displayed in SQL Server Enterprise Manager (SEM), unless you scroll down to the end of the table (the last row of the table), Enterprise Manager returns the following error: Cannot start transaction while in firehose mode. Cause
    When using SEM to display the rows from a table, all rows are returned by a "firehose cursor"; however, only the rows that are displayed have been processed. A "firehose cursor" refers to how the server sends rows to the client as fast as the client can process them. Rows that are not displayed in the Enterprise Manager are not processed and, therefore, they remain in the network buffer.The "Cannot start transaction while in firehose mode" error occurs when an OLE-DB provider attempts to perform a join transaction with results pending and while not in an updateable cursor mode.
      

  4.   

    to:pengdali(大力 V2.0)谢谢!!!