INFORMACE: Důvody a pomocí dbcancel() nebo sqlcancel()

Překlady článku Překlady článku
ID článku: 117143 - Produkty, které se vztahují k tomuto článku.
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Funkce dbcancel() a sqlcancel() jazyka SQL (VBSQL) rovnocenné, se často používají v aplikacích, při nesmí být. Velká část společné knihovny DB-Library (DB vzorků) nebo VBSQL programování stonku problémy z aplikací, které použil toto volání rozhraní API. Tento článek poskytuje některé praktické pokyny na při a kdy nelze použít dbcancel() a Sqlcancel().

Další informace

Obecně je doporučeno a považovány za knihovny DB-Library programování vhodné procesy všechny výsledky, dokud není žádné další výsledky a všechny řádky až k dispozici žádné další řádky při načítání výsledků nebo po odeslání na server listu Transact-SQL.

Knihovny DB-Library program by měl mít nikdy volání dbresults()/sqlresults() a dbnextrow()/sqlnextrow() pevný kódované předem počtu iterací.

Například by měl zavolat dbresults() a dbnextrow() následujícím způsobem:
   while ((result_code = dbresults(dbproc)) != NO_MORE_RESULTS)
        {
             while (dbnextrow(dbproc) != NO_MORE_ROWS)
        }
				

Není voláním dbresults() a dbnextrow() jako výše a můžete často, způsobit problémy aplikace, které mohou není zřejmé až později v vývoj nebo testování po nákladné nápravná opatření.

Pokud z nějakého důvodu aplikace je vyžadován přístup pouze x řádky ze sady výsledků, doporučujeme transact SQL příkazu "nastavit rowcount x" použít místo volání dbnextrow x časy a dbcancel(). Existuje několik důvodů, není použití dbcancel() jako součást standardní výsledky zpracování rutiny.

Kdy není použití dbcancel()

dbcancel() nebudou zrušit, vrácení zpět, nebo potvrzení uživatelem definované transakce. Všechny výhradní uzamčení získali v rámci transakce definované uživatelem, bude zachován i po vydávání dbcancel(), protože je stále aktivní transakce definované uživatelem. To může způsobit blokování a jiné potíže s obtížné souběžnosti. Při vydávání dbcancel() v rámci transakce definované uživatelem, programátor by měly zajistit, že transakce je buď explicitně potvrzena nebo vrátit zpět.

Kromě toho pracuje v této souvislosti, je snadné chybí, že aplikace je skutečně v midst uživatelem definované transakce, která byla potvrzena nikdy nebo vrátit zpět. Kromě toho existují také některé varianty jak dbcancel nebo pozornost signál, který generuje jsou implementovány z platformy na platformu.

Poznámka: Dbcancel() Microsoft SQL Server implementace jsou všechny platformy Microsoft SQL Server, jako například Windows NT x 86, alfa a RISC konstantní platformy. Problémy s kompatibilitou vzniknout především mezi různými implementacemi Sybase a Microsoft SQL Server. Navíc tyto rozdíly často pocházejí z problémy související s dopravní například jak je implementována data out-of-band TCP/IP jednoho dodavatele, a způsob interakce s implementace protokolu TCP/IP out-of-band data jiného dodavatele, čisté výsledky může způsobit problémy přenositelnost v knihovny DB-Library aplikací pomocí dbcancel().

Při použití dbcancel()

dbcancel() by měl být používán v případech, kdy je uživatel znovu získat kontrolu nad aplikací. V tomto prostředí může programátor zpracovat výjimku vydávání dbcancel v prostředí uživatele kde dbcancel() nefunguje podle reagovat se zprávou jako "dbcancel() není na této platformě podporována!". Programátor také chtít použít v případě poruchy knihovny DB-Library příkaz dbcancel() jako část čisté až postup pro procesy DB vzorků, uskutečněné.

Vlastnosti

ID článku: 117143 - Poslední aktualizace: 10. února 2014 - Revize: 3.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 4.21a Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
Klíčová slova: 
kbnosurvey kbarchive kbmt kbinfo kbprogramming KB117143 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:117143

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