Oprava: Objekt OdbcConnection nehlásí chybu při zadání úroveň izolace transakcí, který není podporován ve zdroji dat v rozhraní .NET Framework 2.0

Překlady článku Překlady článku
ID článku: 917752 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Zvažte následující scénář. Zprostředkovatele dat Microsoft .NET Framework pro ODBC v rozhraní .NET Framework 2.0 slouží k připojení ke zdroji dat v aplikaci. Chcete-li transakci spustit potom použijete metodu BeginTransactionOdbcConnection objektu. Je-li zadat úroveň izolace transakcí, který není podporován ve zdroji dat pro transakci. V tomto případě výjimka OdbcException se nevyskytuje podle očekávání. Výjimka se však dochází očekávaným způsobem při použití rozhraní .NET Framework 1.1.

Příčina

K tomuto problému dochází, protože metody BeginTransaction nehlásí chyba ODBC (SQL_ERROR), SQLSetConnectAttr funkce vrátí. Autocommit režim je výchozí režim řízení transakcí pro zprostředkovatele dat .NET Framework pro ODBC. Zprostředkovatel dat Autocommit režimu pouze vypne, pokud je úroveň izolace transakcí nastavena správně. Proto pokud zadáte úroveň izolace nesprávné transakce, transakce nefunguje. Volání metody paměti nebo metody vrácení zpět, jsou platná. Metody paměti a metody vrácení zpět není zprávu Chyba ODBC (SQL_ERROR).

Řešení

Má nyní od společnosti Microsoft k dispozici podporovanou opravu hotfix. Že je však určena pouze problém popsaný v tomto článku. Použijte ji pouze v systémech, ve kterých dochází k tomuto konkrétnímu problému. Tato oprava hotfix může být dále testována. Proto pokud je přísně neohrožuje tento problém, doporučujeme abyste počkali další NET Framework 2.0 Service Pack obsahující tuto opravu hotfix.

Potřebujete-li odstranit tento problém okamžitě, obraťte se na technickou podporu společnosti Microsoft, kde můžete tuto opravu hotfix získat. Úplný seznam telefonních čísel služeb technické podpory společnosti Microsoft a informace o cenách podpory naleznete na následujícím webu společnosti Microsoft:
http://support.microsoft.com/contactus/?ws=support
Poznámka: Ve zvláštních případech mohou být poplatky za poskytnutí telefonické podpory účtovány stornovány, jestliže pracovník technické podpory společnosti Microsoft určí, že konkrétní aktualizace vyřeší váš problém. Výdaje na podporu se obvykle týkají dalších otázek a problémů, které se netýkají této zvláštní opravy.

Požadavky

Chcete-li nainstalovat tuto opravu hotfix, musíte mít podpůrné soubory, které jsou popsány v následujícím článku znalostní báze Microsoft Knowledge Base v počítači nainstalována aplikace Microsoft:
916002Oprava: Chybová zpráva použití třídy SqlClient v aplikaci sady ADO.NET 2.0 se připojit k instanci serveru SQL Server 2005: "nový požadavek nemá povoleno spustit, protože by součástí transakce platný popisovač"

Požadavek na restartování

Není nutné po instalaci této opravy hotfix restartovat počítač.

Informace o registru

Nemáte změna registru.

Informace o souboru opravy hotfix

Tato oprava hotfix obsahuje pouze soubory, které jsou nutné k opravě problémů uvedených v tomto článku. Tato oprava hotfix nemusí obsahovat všechny soubory, které jsou nutné k plné aktualizaci produktu na nejnovější verzi.Anglická verze této opravy hotfix má atributy souborů (nebo vyšší atributy souborů), jsou uvedeny v následující tabulce. Data a časy těchto souborů jsou uvedeny v koordinovaný světový čas (UTC). Při zobrazení informací o souboru, bude převedena na na místní čas. Rozdíl mezi místním časem a UTC časem kartě časové pásmo v položce Datum a čas v Ovládacích panelech.

32Bitové verze rozhraní .NET framework 2.0

Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
Mscordacwks.dll2.0.50727.158800,76824. Května 200614: 59x 86
Mscorlib.dll2.0.50727.1584,317,18424. Května 200614: 59x 86
Mscorwks.dll2.0.50727.1585,623,29624. Května 200614: 59x 86
Sos.dll2.0.50727.158377,34424. Května 200614: 59x 86
System.data.dll2.0.50727.1582,893,82424. Května 200614: 59x 86

Verze 2.0 x 64 systému .NET framework

Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
Mscordacwks.dll2.0.50727.1581,597,44024. Května 200606: 09.x 64
Mscorlib.dll2.0.50727.1583,956,73624. Května 200611: 25x 64
Mscorwks.dll2.0.50727.15810,306,04824. Května 200606: 05x 64
Sos.dll2.0.50727.158476,16024. Května 200606: 15x 64
System.data.dll2.0.50727.1582,959,87224. Května 200611: 25x 64

Architektura verze rozhraní .NET framework 2.0 Itanium

Zmenšit tuto tabulkuRozšířit tuto tabulku
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
Mscordacwks.dll2.0.50727.1582,710,01624. Května 200606: 14IA-64
Mscorlib.dll2.0.50727.1583,956,73624. Května 200612: 03IA-64
Mscorwks.dll2.0.50727.15821,260,28824. Května 200606: 11IA-64
Sos.dll2.0.50727.158857,08824. Května 200606: 22IA-64
System.data.dll2.0.50727.1583,102,20824. Května 200612: 03IA-64

Jak potíže obejít

Chcete-li tento problém vyřešit, zkontrolujte, že je úroveň izolace transakce správné. Kód můžete přidat do aplikace a ověřte, zda je správná úroveň transakce, aby vyvoláním výjimky ve vašem kódu.

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části „ platí.

Další informace

Další informace o pojmenování schématu pro Microsoft SQL Server aktualizace získáte následujícím článku báze Microsoft Knowledge Base:
822499Nové schéma přidělování názvů balíčkům aktualizací softwaru Microsoft SQL Server

Další informace o terminologii aktualizace softwaru naleznete následující článku znalostní báze Microsoft Knowledge Base:
824684Popis standardní terminologie používané k popisu aktualizací softwaru společnosti Microsoft

Další informace

Tento problém mohou způsobit poškození dat, protože vrácení zpět metodu nelze použít. Například můžete nastavit úroveň nesprávné transakce. Vrácení dojít, jestliže dojde k poškození dat očekáváte. Avšak vrácení zpět nespustí. Protože metoda paměti nehlásí došlo k chybě, poškození dat může dojít, protože se data pravděpodobně potvrzené podle očekávání.

Kroky pro reprodukci problému

  1. Vytvořit datový soubor aplikace Microsoft Access (MDB) a pak vytvořte tabulku, která obsahuje dva sloupce. Předpokládejme, že data je uložený ve složce d:\db1.mdb a je T1 název tabulky. Předpokládejme, že dva sloupce jsou pojmenovány C1 a C2.
  2. Vložit některé záznamy do tabulky T1.
  3. Vytvořit projekt jazyka C# pomocí aplikace Microsoft Visual Studio 2005 a vložte následující kód do metody.
    string cnstr = @"Driver={Microsoft Access Driver (*.mdb)};DBQ=d:\db1.mdb;UID=Admin;PWD=;"
    OdbcConnection cn = new OdbcConnection(cnstr);
    cn.Open();
    System.Diagnostics.Debug.WriteLine("connected.");
    
    try
    {
    OdbcTransaction trn = cn.BeginTransaction(IsolationLevel.ReadUncommitted);
    OdbcCommand cmd = new OdbcCommand("select * from T1", C1, C2);
    OdbcDataReader dr;
    dr = cmd.ExecuteReader();
    while (dr.Read())
    {
    System.Diagnostics.Debug.WriteLine(dr[1].ToString());
    }
    dr.Close();
    trn.Commit();
    }
    catch (OdbcException odbcex)
    {
    System.Diagnostics.Debug.WriteLine(odbcex.Message);
    System.Diagnostics.Debug.WriteLine(odbcex.StackTrace);
    }
    cn.Close();
    cn = null;
    
  4. Spusťte aplikaci a ujistěte se, že volaná metoda.
Po dokončení těchto kroků zjistíte, že dojde k žádné výjimky.

Vlastnosti

ID článku: 917752 - Poslední aktualizace: 3. prosince 2007 - Revize: 3.3
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft .NET Framework 2.0
Klíčová slova: 
kbmt kbprb kbtshoot kbexpertiseadvanced KB917752 KbMtcs
Strojově přeložený článek
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.
Projděte si také anglickou verzi článku:917752

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com