Oprava: ADO potlačí chyby při načítání do Nonvariant datové typy

Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.

274423
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Příznaky
Při načítání hodnoty řádků do nonvariant datové typy, ActiveX Data Objects (ADO) může potlačit chyby související s stav záznamů, například upozornění záznam je uzamčen jiným uživatelem.

K tomuto problému dochází v Microsoft Data Access Components (MDAC) verze (RTM systému Windows 2000 nebo MDAC 2.5) 2.50.4403.12 a 2.51.5303.5 (Windows 2000 nebo MDAC 2.5 SP1). Tento problém nenastává v MDAC verze (MDAC 2.6 RTM) 2.60.6526.3.
Příčina
Cesta mírně odlišné kódu je převzat podle toho, zda aplikace načítání do varianty datové typy. Použití varianty zalomený v kontextu vnitřní objekt, který má schopnost vrátit informace o chybě. Nonvariants nemají Tento souhrnný kontextu a nevrací informace o chybě.
Řešení
Tento problém vyřešíte pomocí nejnovější aktualizace service pack pro Microsoft Data Access Components 2.5. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
293312INFORMACE: Jak získat nejnovější MDAC 2.5 Service Pack
Anglická verze této má atributy souborů (nebo novější), které jsou uvedeny v následující tabulce. Data a časy jednotlivých souborů jsou uvedeny ve formátu UTC (Coordinated Universal Time). Pokud zobrazíte informace o souboru, bude převedena na místní čas. Rozdíl mezi místním ČASEM a najít, použijte kartu časové pásmo v ovládacím panelu Datum a čas.
   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				

Možné řešení

Neexistuje žádné řešení tohoto problému.
Prohlášení
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny na začátku tohoto článku. Tento problém byl poprvé opraven v Microsoft Data Access Components 2.5 Service Pack 2.
Další informace

Kroky pro reprodukci chování

  1. Zkopírujte následující kód do projektu jazyka:

    Poznámka:<username>Musíte změnit UID <uživatelské_jméno> hodnotu a PWD = hodnota < silné heslo > na správné hodnoty před spuštěním tohoto kódu. Ujistěte se, zda má zadaný uživatel příslušné oprávnění pro provedení této akce s databází.
    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. Přidat odkaz Microsoft ActiveX Data Objects 2.5 knihovny.
  3. Spustit kód a zvolte Ano po zobrazení výzvy použijte variant. Všimněte si, že "Timeout vypršela" Chyba je vrácena zpráva označující, že záznamy by nejsou načteny v zadanou dobu.
  4. Znovu spustit kód a zvolte tento čas bez výzvy použijte variant. Tento čas je vrácena chyba oznamující není žádný aktuální záznam, ale není k dispozici žádný údaj váš časový limit byl překročen.
Odkazy
Další informace naleznete v následujících článcích znalostní báze Microsoft Knowledge Base:
247757Oprava: Použití parametrizované příkaz in ADO nevracení připojení
264442Oprava: ADO Recordset ztráta filtr vlastností při Marshalled-procedura
264701Oprava: Předávání ADO Recordset ByRef obnoví Error Information
objekty ADO potlačit potlačí chybové zprávy časový limit varianty načtení

Upozornění: Tento článek byl přeložen automaticky

Vlastnosti

ID článku: 274423 - Poslední kontrola: 02/28/2014 11:52:15 - Revize: 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 kbmt kbhotfixserver kbqfe kbado250fix kbbug kbfix kbmdac250fix kbqfe KB274423 KbMtcs
Váš názor