• 締切済み

ファイアホースモードエラーについて

こんにちは 初めて質問させていただきます。 SQL Server2000の環境で Enterprise Managerからあるテーブルに対して更新処理を行うと 『ファイアホースモードの間はトランザクションを開始できません』というエラーが出てしまい、更新処理を行うことができません。 上記エラーは トランザクションが既にかかってる状態で、さらにトランザクションを開始しようとしていた場合等で生じるエラーでありますが、 再起動⇒Enterprise Manager⇒テーブル更新⇒エラー となり非常に困っております。 また、エラーとなるテーブルに対し、クエリ アナライザからUPDATE文を実行すると登録することができます。 上記内容で心当たりのあるかたご教授のほどよろしくお願い致します。

みんなの回答

回答No.3

もうだいぶ時間が経っているので解決しているかもしれませんが、 私も(恐らく)同じ問題にぶち当たって調べていたところだったので、 今後調べる方の参考にもなるかと思い、私の場合の解決方法を投稿しておきます。 EnterpriseManagerでテーブルを編集した後、 編集した行にフォーカスが当たったまま更新を実行すると、このエラーが起きるようです。 編集した行から他の行へ一度フォーカスをはずしてから実行すると、正常に更新されます。 違った原因で起きている場合もあるかもしれませんが、 このエラーが起きたときは一度試してみてください。

  • 7marine
  • ベストアンサー率36% (59/160)
回答No.2

ファイヤホースモードエラーは普通プログラムの時に見ますが、私はEnterpriseManagerで見たことがないです。 心当たりが無くてすいません すこし詳しく状況を教えていただけないと解決できないと思います 常にそのエラーが出ますか? テーブルの更新は右クリックでテーブルを開くでしょうか? クエリアナライザでそのテーブルを右クリックして「開く」で直接セルを書き換えたときもエラーが出ますか? 主キーはどんな感じでしょうか? 更新トリガが設定してあるでしょうか?

  • 7marine
  • ベストアンサー率36% (59/160)
回答No.1

憶測ですが、 レコード数は多いのではないですか? 全レコードを取得する前に更新を行おうと しているのではないでしょうか?

mizinnko
質問者

補足

7marine様 返答ありがとうございます。 レコード件数は2000件程度と少ないレコード数となっております。

関連するQ&A

  • ASPでトランザクションをかけるとエラーする「ファイアーホースモード」

    ASPでSQLserverに接続し、レコードの更新をかける際に、 BeginTrans---CommitTrans と記述すると、 「ファイアーホースモードの場合はトランザクションがかけられない」という 主旨のエラーが出ます。 このファイル内でトランザクションをかけている場面はここのみです。 (複数書いていてCursorTypeを設定しないとエラーするのは既に 解決済みです。) そもそも、「ファイアーホースモード」とはどんなモードなのでしょうか?

  • エクセルVBA_ADO「ファイアホースモードの間はトランザクションを開

    エクセルVBA_ADO「ファイアホースモードの間はトランザクションを開始できない」 最近、エクセルVBAからSQLサーバーを編集するプログラムの勉強をはじめ、以下のサイトを読みながらテストプログラムを走らせています。 http://www.happy2-island.com/access/gogo03/capter00306.shtml そして、以下のようなコードを走らせて見ると、「ファイアホースモードの間はトランザクションを開始できません」とのエラーが出ます。 コードを以下に記します((2)トランザクションを開始します←ここで上記のエラーが出ます) Sub prcAdoSQLServerDB() Dim adoCON As New ADODB.Connection Dim adoRS As ADODB.Recordset '(1)ADOを使いSQL ServerのDBを開きます adoCON.Open "Driver={SQL Server};" & _ "server=aaa\db; database=a1; uid=a; pwd=a;" 'レコードセットの作成(SELECT文の実行) Set adoRS = adoCON.Execute("select * from 明細") 'レコード追加のSQLを定義(フィールド名省略すると、nullを入れようとする) strsql = "INSERT INTO 詳細 (得意先コード) Values(000010)" '(2)トランザクションを開始します adoCON.BeginTrans '(3)レコード追加のSQLを実行します adoCON.Execute strsql '(4)SQL実行結果の判定 If Err.Number = 0 Then '(5)SQLが正常終了したら追加を反映します adoCON.CommitTrans Else '(6)SQLが異常終了したら追加の破棄とエラー内容の表示をします adoCON.RollbackTrans End If End Sub 何が原因なのでしょうか。

  • 同一トランザクションの中でテーブルの更新結果を参照できるか?

    VB5.0+SQL-Serverで、以下のような処理を 検討しているのですが、いい方法がみつかりません。 つまり、同一トランザクションの中で更新結果を 参照することが出来るのでしょうか? ご教授いただけると幸いです。 【検討中の処理】 トランザクション開始(BegenTrans)  テーブルA更新  テーブルAの更新結果を参照してテーブルBを更新 (この時点ではトランザクションを終了していないので、  テーブルAの更新結果が参照できない) トランザクション終了(CommitTrans)

  • トランザクションモード

    早速ご教示ください。 データベース(TEST_db)のM_SYAIN_CDというテーブルがあるとします。 【クエリアナライザ】TEST_db BIGIN TRANSACTION GO DELETE M_SYAIN_CD GO 上記を実行します。 この状態で、M_SYAIN_CDの全行を返すと、『Microsoft odbc sqlserver driver 時間切れになりました』とエラーになり全行返すことができません。 (1)なぜMicrosoft odbc sqlserver driver 時間切れになりました。とな るのか? トランザクションモード中にテーブルは見れないのでしょうか? 【クエリアナライザ】TEST_db BIGIN TRANSACTION GO DELETE M_SYAIN_CD GO COMMIT TRANSACTION GO (2)上記実行後、ROLLBACKはできるのでしょうか? ご教示の程宜しくお願い致します。

  • レプリケーションの結果確認

    こんにちは。 SQL Server2000を使用しています。 レプリケーション(パブリケーション、サブスクリプション)の 実行結果を簡単に確認するために模索しております。 Enterprise Managerを使用すれば見る事はできるのですが、 それをクエリアナライザやOSQLを使用して確認したく、 適切なSPコマンドやシステムテーブルを教えて頂けないでしょうか。 自分なりに調べてはみたのですが、適切なものが見つからなく、 どうぞよろしくお願い致します。

  • SQLServer2000:テーブルの先頭に列を追加したい

    いつもお世話になっております SQLServer2000を使用しております。 あるテーブルに a,b,c,dという4つの項目が存在している状態で aの前にzというフィールドを追加したいと考えております。 Enterprise Managerを使えば簡単に行うことが出来ますが、 これをクエリアナライザで行いたい場合に どのようにSQL文を記述すればよいのか、見つけることが出来ませんでした。 このようなことは可能なのでしょうか。 ご存知の方がいらっしゃいましたら、ご教示のほど、何卒よろしくお願いいたします。

  • SQL ServerのSQL実行時のエラーについて

    XXXX.sqlファイルに20万件ほどのクエリが書かれています。 メモリの消費を防ぐために、1行ごとでGOを行い処理をさせています。 SQL ServerのEnterprize ManagerでXXXX.sqlファイル を実行すると(1行処理しました)という表示がされます。 そしてエラーが起きると、エラーが起きた旨と、その行が 表示されるのですが、1行ごと実行させているので、エラーが起きた行を うまく特定できません。 上記のような場合で、エラーが起きた際に、エラーが起きた 該当クエリを知りたいのですが、 何か方法はありますでしょうか。

  • エラー行の表示

    入力フォーム登録時に複数のテーブルを更新する為、エラーに備えトランザクション処理を入れています。 エラーが出た場合、任意にerr.number,err.escriptionを表示していますが、err.lineがでません!!! エラー内容だけではどこなのかわかりかねますので、非常に困っています。 WebサーバのOSは2000SERVERです。IISのバージョンは・・・どうやってみるかわかりません。。。使用しているDBはSQL-SERVER2000です。 よろしくおねがいします!!!!

  • varchar型の入力できる最大文字数について

    varcharでサイズを8000にしたフィールドに1000文字(例えば’aaa・・・「a」を1000文字・・・’)INSERTした後にそのフィールドをSELECTすると256文字しか入っていません。どうしてなんでしょうか? SELECT、INSERTなどのSQLの実行は”クエリ アナライザ”や”SQL Server Enterprise Manager”で試しました。 SQLServer初心者です。何卒宜しくお願い致します。

  • トランザクションの考え方

    トランザクションの考え方を教えて下さい。 「データの参照や追加・更新・削除といった処理に矛盾がないことを保証する」という記述を見たのですが、下記の場合も良いのでしょうか。 トランザクションの開始 SELECT * FROM Aテーブル WHERE 項目A = '1' --処理-- UPDATE Aテーブル SET 項目B = '2' WHERE 項目A = '1' トランザクションの終了 開始から終了までの間に他のPCによって SELECT対象のデータが増える可能性があります。 この場合UPDATEするときはやはりSELECTの結果でLOOPするべきなのでしょうか。 上記のようにするとSELECT件数とUPDATE件数は異なってしまうのでしょうか。 環境はVB2005+SQL Server です。