Oprava: Při předávání parametrů textu způsobuje AV volání vzdálené uložená procedura vnitřní místní uložená procedura

Překlady článku Překlady článku
ID článku: 299366 - Produkty, které se vztahují k tomuto článku.
CHYBA Č: 351307 (SHILOH_BUGS)
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Volání vzdáleného uložené procedury uvnitř místní uložené procedury při předávání TEXT parametru může způsobit narušení přístupu (AV) na místním serveru.

Tento problém byl izolované následující podmínky:
  • Na cílovém serveru je uložená procedura, která přijímá parametr TEXT (nebo NTEXT).
  • Na zdrojovém serveru je místní uložené procedury, která volá vzdáleného uložené procedury na cílovém serveru podle plně kvalifikovaný název při předání parametru TEXT (nebo NTEXT).

Řešení

Tento problém vyřešíte pomocí nejnovější aktualizace service pack pro SQL Server 2000. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
290211INF: Jak získat nejnovější aktualizaci Service Pack pro SQL Server 2000

Jak potíže obejít

Pole TEXT (nebo NTEXT) změnit přímo, namísto volání uložené procedury.

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v SQL Server 2000. Tento problém byl poprvé opraven v SQL Server 2000 Service Pack 1.

Další informace

Kroky pro reprodukci chování

Následující kroky reprodukci problému na serveru SQL Server 2000 sestavení 8.00.194:
  1. Na zdrojovém serveru vytvořte propojený server cílového serveru.
  2. Připojení k serveru zdroje pomocí Query Analyzer a spustíte následující dotaz:
    use pubs
    go
    
    CREATE procedure sp_local
    @ptxtText TEXT
    as
    exec destination_servername here.pubs.dbo.sp_remote  @ptxtText
    GO
    					
  3. Na cílovém serveru vytvořit uloženou proceduru následujícím způsobem:
    use pubs
    go
    
    create procedure sp_remote
    @ptxtTest TEXT
    as
    go
    					
  4. Následující dotaz spustit na serveru zdroj:
    sp_local 'mytest'
    					
    na zdrojovém serveru dojde k narušení přístupu.
-------------------------------------------------------------------------------
Short Stack Dump
00000000 Module(sqlservr+FFC00000)
006D6FF9 Module(sqlservr+002D6FF9) (CXVariant::ClearDeep(void)+00000047)
0040A849 Module(sqlservr+0000A849) (CXVariant::Clear(void)+0000000D)
006134D6 Module(sqlservr+002134D6)(CExecParamTbl::ResetTextParams(void)+00000046)
0079726F Module(sqlservr+0039726F) (CRuleCollection::LoadRules(class IMemObj *)+00004B19)
-------------------------------------------------------------------------------
				

Vlastnosti

ID článku: 299366 - Poslední aktualizace: 5. listopadu 2003 - Revize: 3.2
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2000 Standard Edition
Klíčová slova: 
kbmt kbbug kbfix kbsqlserv2000sp1fix KB299366 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:299366

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