sql >> データベース >  >> RDS >> Sqlserver

より高度なクエリを実行しているときにオブジェクトが閉じている場合、操作は許可されません

    これは、ADODBを使用しているときに、行数がストアドプロシージャからの出力として解釈されることによって引き起こされる一般的な問題です。 SQLServerを使用します。

    これを回避するには、設定することを忘れないでください

    SET NOCOUNT ON;
    

    ストアドプロシージャでは、これによりADODBが閉じたレコードセットを返すのを停止します。または、何らかの理由でこれを実行したくない場合(常に@@ROWCOUNTを使用できるため、理由はわかりません) 行数を戻すには)を使用できます

    'Return the next recordset, which will be the result of the Stored Procedure, not 
    'the row count generated when SET NOCOUNT OFF (default).
    Set rs = rs.NextRecordset()
    

    次のADODB.Recordsetを返します ADODBがストアドプロシージャによって返されるものを検出した場合(rs.State <> adStateClosedを確認するのが最適な場合があります 複数のADODB.Recordsetオブジェクトを処理する場合)。




    1. MaxScaleを使用して中間MySQLまたはMariaDBマスターをBinlogサーバーに置き換える方法

    2. 時系列データベースの概要

    3. MariaDBでのTAN()のしくみ

    4. OracleのREGEXP_REPLACE()関数