Teď jste offline a čekáte, až se znova připojí internet.

V počítači s nainstalovaným rozhraním Microsoft Data Access Components 2.8 obdrží aplikace z databáze serveru SQL Server 2005 nesprávnou hodnotu sloupce identity (Tento článek může obsahovat odkazy na anglický obsah (dosud nepřeložený).)

Podpora Windows XP byla ukončena.

Společnost Microsoft ukončila dne 8. dubna 2014 podporu Windows XP. Tato změna ovlivnila aktualizace softwaru a možnosti zabezpečení. Další informace o tom, co to pro vás znamená a jak zajistit ochranu.

Podpora pro Windows Server 2003 byla ukončena 14. července 2015

Společnost Microsoft ukončila podporu pro Windows Server 2003 dne 14. července 2015. Tato změna ovlivnila aktualizace softwaru a možnosti zabezpečení. Další informace o tom, co to pro vás znamená a jak zajistit ochranu.

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.

940569
Příznaky
Předpokládejme následující situaci. Vytvořit tabulku obsahující sloupec identity v databázi 2005 Microsoft SQL Server. Konfigurace replikace korespondence na tabulce. Aplikace používá k vložení řádku v tabulce ActiveX Data Objects (ADO). Aplikace pak načte vloženého řádku. Však je vrácena nesprávná hodnota pro sloupec identity.

Tento problém nastane, když počítač spustí aplikace má jednu z následujících nainstalován:
  • Systém Windows Server 2003
  • na systém Windows XP
  • Microsoft Data Access Components 2.8 (MDAC 2.8)
Tento problém nenastává v databázi 2000 Microsoft SQL Server.
Příčina
Proces replikace vytvoří Vložit aktivační události v tabulce. Po vložení dat v tabulce použít aktivační procedury pro vložení @@ IDENTITY proměnné namísto funkce SCOPE_IDENTITY. Proto @@ IDENTITY proměnné může vrátit hodnotu identitu, která není v aktuální tabulce.
Řešení
Chcete-li tento problém vyřešit, nainstalujte opravu hotfix popsanou v následujícím článku znalostní báze Microsoft Knowledge Base:
961451Oprava: Obdržíte nesprávná hodnota při dotazování hodnoty vložili poslední identity po vložení dat do tabulky obsahující sloupec identity v aplikaci, která používá datových objektů ActiveX pomocí kurzor na straně klienta
Poznámka: Opravu hotfix popsanou v části "Řešení" v dřívější verzi tohoto článku je nahrazen opravu hotfix popsanou v 961451.
Prohlášení
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.
Další informace
Funkce SCOPE_IDENTITY a @@ IDENTITY proměnné vrátit poslední hodnoty identity, které jsou generovány v libovolné tabulce v aktuální relaci. Funkce SCOPE_IDENTITY však vrátí hodnoty, které jsou vloženy pouze v rámci aktuálního oboru. @@ IDENTITY proměnné omezit kurzor konkrétním oboru.

Předpokládejme například, že databáze obsahuje Tabulka1 a Tabulka2. Obě tabulky mají sloupce identity. Aktivační proceduru vložení je definována v Tabulka1. Po vložení řádku v Tabulka1 aktivační událost vloží kopii řádku tabulka2. Tento scénář zahrnuje následující dvě obory:
  • Vložení Tabulka1
  • Vložení v tabulka2 podle aktivační události
V tomto scénáři @@ IDENTITY proměnné a funkce SCOPE_IDENTITY vrátí různé hodnoty, když řádek je vložena v Tabulka1. @@ IDENTITY proměnné vrátí poslední hodnotu sloupce identity, která je vložena přes všechny obory v aktuální relaci. V tomto případě @@ IDENTITY proměnné vrátí hodnotu identity je vložen tabulka2. Funkce SCOPE_IDENTITY však vrátí hodnotu identity je vložen Tabulka1, protože funkce SCOPE_IDENTITY vrátí hodnotu posledního vložen do stejného oboru. Pokud je vyvolána funkce před libovolné příkazy INSERT provedených sloupec identity dojít v oboru, vrátí funkce SCOPE_IDENTITY hodnotu NULL.

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

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

Vlastnosti

ID článku: 940569 - Poslední kontrola: 08/25/2009 16:09:56 - Revize: 2.0

  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional x64 Edition
  • Microsoft Data Access Components 2.8
  • kbmt kbautohotfix kbwinxppresp3fix kbexpertiseinter kbwinserv2003postsp2fix kbbug kbfix kbhotfixserver kbqfe KB940569 KbMtcs
Váš názor