[FIX ADO しませんエラー Nonvariant データ型にフェッチする場合

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:274423
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
nonvariant データ型に行セットの値を取得、ときに ActiveX データ オブジェクト (ADO) レコードが他のユーザーによってロックされていますが通知など、レコードセットの状態に関連したエラーの抑制可能性があります。

この問題はデータ アクセス コンポーネント (MDAC) 中に発生します (Windows 2000 と MDAC 2. 5 の RTM) 2.50.4403.12 および 2.51.5303.5 バージョン (Windows 2000 と MDAC 2. 5 SP1)。 MDAC のバージョンでこの問題は発生しません (MDAC 2. 6 RTM) 2.60.6526.3。
原因
異なるコード パスをバリアント型 (Variant) のデータ型に、アプリケーションがフェッチするかどうかに応じて取得されます。 バリエーションの使用はエラー情報を取得する機能を持つ内部コンテキスト オブジェクトでラップします。 nonvariants はこのコンテキスト ラッパーがないし、エラー情報が返されない。
解決方法
この問題を解決する Microsoft データ アクセス コンポーネントの最新のサービス パックの入手 2. 5 です。 関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください:
293312[INFO] 最新の MDAC 2.5 Service Pack の入手方法
このがファイル属性 (またはそれ以降) 次の表は、されている可能性もします。 これらのファイルの日時に協定時刻 (UTC) 記載します。 各ファイルの日付および時刻は、世界協定時刻 (UTC) で示されています。 UTC および現地時間の時差を確認するには、コントロール パネル]、日付と時刻ツールの [ タイム ゾーン ] タブを使用してください。
   Date       Version        Size             File name   ----------------------------------------------------------   8/29/2000  2.51.5629.0     20,480 bytes    Msader15.dll   8/29/2000  2.51.5629.0    487,696 bytes    Msado15.dll   8/29/2000  2.51.5629.0    172,304 bytes    Msadomd.dll   8/29/2000  2.51.5629.0     57,616 bytes    Msador15.dll   8/29/2000  2.51.5629.0    184,592 bytes    Msadox.dll   8/29/2000  2.51.5629.0     57,616 bytes    Msadrh15.dll   8/29/2000  2.51.5629.0     94,480 bytes    Msjro.dll				

回避策

この問題に対する回避策はありません。
状況
マイクロソフトとして認識していますこの問題をこの資料の冒頭に記載されているマイクロソフト製品の問題。 この問題は、まず Microsoft データ アクセス コンポーネントの 2. 5 Service Pack 2 で修正されました。
詳細

問題の再現手順

  1. 次のコードを Visual Basic プロジェクトにコピーします。

    メモ UID <username> を変更する値と、PWD このコードを実行する前に、正しい値に < 強力なパスワード > の値を =。 UID がこの操作は、データベースで実行する適切なアクセス許可を確認します。
    Dim cn As ADODB.Connection, cnOtherUser As ADODB.ConnectionDim rs As ADODB.Recordset, rsOtherUser As ADODB.RecordsetDim strConn As String, strSQL As StringDim varData As Variant, intData As IntegerstrConn = "Provider=MSDASQL;Driver={SQL Server};Server=YourServer;Database=Northwind;UID=<user name>;PWD=<strong password>;"strSQL = "SELECT * FROM Customers"Set cnOtherUser = New ADODB.ConnectioncnOtherUser.Open strConnSet rsOtherUser = New ADODB.RecordsetrsOtherUser.Open strSQL, cnOtherUser, adOpenKeyset, adLockPessimistic, adCmdTextrsOtherUser.MoveFirstSet cn = New ADODB.Connectioncn.Open strConncn.CommandTimeout = 10Set rs = New ADODB.Recordsetrs.Open strSQL, cn, adOpenKeyset, adLockPessimistic, adCmdTextIf MsgBox("Use Variant?", vbYesNo) = vbYes Then    On Error Resume Next    varData = rs(0)    If Err.Number <> 0 Then        MsgBox Err.Description        Err.Clear        cn.Errors.Clear    Else        MsgBox "No error!"    End If    On Error GoTo 0Else    On Error Resume Next    intData = rs(0)    If Err.Number <> 0 Then        MsgBox Err.Description        Err.Clear        cn.Errors.Clear    Else        MsgBox "No error!"    End If    On Error GoTo 0End Ifrs.Closecn.ClosersOtherUser.ClosecnOtherUser.Close					
  2. 参照、Microsoft ActiveX データ オブジェクトの 2. 5 を追加ライブラリ。
  3. 実行、コードし [を選択して [はい] が表示されたら、バリアント型 (Variant) を使用してください。 タイムアウトがエラー メッセージが返され、レコードでした、指定された時間でフェッチされなかったことを示すことを確認します。
  4. コードをもう一度実行し、今回 なし バリアント型 (Variant) を使用するように求めを選択します。 今度は、エラーが、現在のレコードはありませんが、タイムアウトを超えましたすることを示す値がないことを示すを返されます。
関連情報
詳細についてはをクリック資料以下の記事の「サポート技術情報」(Microsoft Knowledge Base) を表示します。
247757[FIX リークが発生する接続を使用して ADO でのコマンドをパラメーター化
264442[FIX] ADO レコードセットにマーシャリングすると、フィルター プロパティが失われるプロセスで
264701[FIX ADO レコードセットの ByRef を渡すことのエラー情報をリセットします。
ADO の抑制エラー メッセージのタイムアウトのバリアント フェッチの抑制

警告: この記事は自動翻訳されています

プロパティ

文書番号:274423 - 最終更新日: 02/23/2014 22:19:52 - リビジョン: 2.2

Microsoft ActiveX Data Objects 2.5, Microsoft Data Access Components 2.5, Microsoft Data Access Components 2.5 Service Pack 1

  • kbnosurvey kbarchive kbbug kbfix kbmdac250fix kbqfe kbado250fix kbhotfixserver kbmt KB274423 KbMtja
フィードバック
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)