現象
Microsoft OLE DB Provider for SQL Server (SQLOLEDB) を使用してテーブルのレコードを変更しようとすると、次のエラーメッセージが表示されます。
実行時エラー '-2147467259 (80004005) ': 特定できないエラー
このメッセージは、次のすべての条件が満たされた場合に表示されます。
-
テーブルにトリガーが含まれており、トリガーでは FETCH コマンドが使用されています。
-
コンピューターに Microsoft データアクセスコンポーネント (MDAC) 2.8 がインストールされている。
-
FETCH コマンドでは、省略可能な INTO 句は使用されません。
解決方法
この問題を解決するには、Microsoft Windows XP の最新の service pack を入手してください。詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
322389 Windows XP の最新の Service Pack を入手する方法
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
問題の再現手順
問題を再現するには、FETCH コマンドを使用する更新トリガーを作成してから、Microsoft Visual Basic 6.0 プロジェクトを作成します。
-
SQL クエリアナライザーを起動し、SQL Server 2000 のインスタンスに接続します。
-
[ クエリ ] メニューの [ データベースの変更] をクリックします。 [サーバー名のデータベースの選択] ダイアログボックスが表示されます。注 サーバー名 は、接続されている SQL Server 2000 のインスタンスの名前のプレースホルダーです。
-
[ 名前 ] 列で、[ pubs] をクリックし、[ OK]をクリックします。
-
SQL クエリアナライザーで、次の Transact-sql ステートメントを実行します。
CREATE TRIGGER jobs_Trigger1ON dbo.jobsFOR UPDATE ASBEGINDECLARE @job_id intDECLARE job_inserted_cursor CURSORLOCALFAST_FORWARDFOR Select job_id FROM inserted OPEN job_inserted_cursorFETCH NEXT FROM job_inserted_cursor /* The error occurs. *//* FETCH NEXT FROM job_inserted_cursor INTO @job_id The error does not occur. */CLOSE job_inserted_cursorDEALLOCATE job_inserted_cursorEND
-
Microsoft Visual Basic 6.0 を起動します。
-
[ 新しいプロジェクト ] ダイアログボックスで、[ 標準 EXE] をクリックし、[ 開く] をクリックします。 既定では、Form1 という名前のフォームが作成されます。
-
プロジェクトエクスプローラーで、 Form1 フォームを右クリックし、[コードの 表示] をクリックします。
-
Form1 フォームのコードウィンドウに次のコードを貼り付けます。
Dim cnDim rsPrivate Sub Form_Load()Set cn = CreateObject("ADODB.Connection")cn.Open "Provider=SQLOLEDB;Pwd=<password>;UID=<user name>;Initial Catalog=pubs;Data Source=<data source>"cn.CursorLocation = 2Set rs = CreateObject("ADODB.Recordset")rs.Open "select * from jobs", cn, 1, 3rs.MoveLastrs(1).Value = "Test"rs.UpdateEnd Sub
注 パスワード、 ユーザー名、 データソース は、環境のパスワード、ユーザー名、データソースのプレースホルダーです。
-
[ 実行 ] メニューの [ 開始] をクリックします。 "Symptoms" セクションに記載されているエラーメッセージが表示されます。
参照情報
関連情報を参照するには、次のマイクロソフト サポート技術情報番号をクリックしてください。
824684 マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明詳細については、次の Microsoft 開発者ネットワーク (MSDN) Web サイトを参照してください。
SQL Server 用の OLE DB プロバイダーをインストールするhttp://msdn2.microsoft.com/en-us/library/aa198252 (http.sys) .aspx トリガーhttp://msdn2.microsoft.com/en-us/library/aa213995 (http.sys) .aspx を使用して http://msdn2.microsoft.com/en-us/library/aa172595 (http.sys) .aspxを行う