Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Mějte na paměti, že aplikace nevolají funkce ovladačů přímo. Místo toho volají na stejnojmenné funkce Správce ovladačů, který pak volá funkce samotného ovladače. Obvykle k tomu dochází téměř okamžitě. Aplikace například volá SQLExecute ve Správci ovladačů a po několika kontrolách chyb volá Správce ovladačů SQLExecute v ovladači.
Proces připojení se liší. Když aplikace volá SQLAllocHandle s možnostmi SQL_HANDLE_ENV a SQL_HANDLE_DBC, funkce přidělí popisovače pouze ve Správci ovladačů. Správce ovladačů tuto funkci v ovladači nevolá, protože neví, který ovladač má volat. Podobně platí, že pokud aplikace předá popisovač nepřipojeného připojení k SQLSetConnectAttr nebo SQLGetConnectAttr, spustí funkci pouze Správce ovladačů. Uloží nebo získá hodnotu atributu z popisovače připojení a vrátí SQLSTATE 08003 (připojení není otevřené) při získání hodnoty atributu, který nebyl nastaven a pro který ODBC nedefinuje výchozí hodnotu.
Když aplikace volá SQLConnect, SQLDriverConnect nebo SQLBrowseConnect, správce ovladačů nejprve určí, který ovladač se má použít. Potom zkontroluje, jestli je ovladač aktuálně načtený do připojení:
Pokud není v připojení načten žádný ovladač, správce ovladačů zkontroluje, zda je zadaný ovladač načten do jiného připojení ve stejném prostředí. Pokud ne, správce ovladačů načte ovladač na připojení a volá SQLAllocHandle v ovladači s možností SQL_HANDLE_ENV.
Správce ovladačů pak volá SQLAllocHandle v ovladači s volbou SQL_HANDLE_DBC, bez ohledu na to, zda byl právě načten. Pokud aplikace nastaví nějaké atributy připojení, správce ovladačů volá SQLSetConnectAttr v ovladači. Pokud dojde k chybě, funkce připojení správce ovladačů vrátí SQLSTATE IM006 (chyba ovladače SQLSetConnectAttr). Správce ovladačů nakonec zavolá funkci připojení v ovladači.
Pokud je zadaný ovladač načten do připojení, Správce ovladačů volá pouze funkci připojení v ovladači. V tomto případě musí ovladač zajistit, aby všechny atributy připojení v připojení zachovaly aktuální nastavení.
Pokud je na připojení načten jiný ovladač, Správce ovladačů volá SQLFreeHandle v ovladači, aby uvolnil připojení. Pokud neexistují žádná další připojení, která používají ovladač, Správce ovladačů volá sqlFreeHandle v ovladači, aby uvolnil prostředí a odloží ovladač. Správce ovladačů pak provede stejné operace jako v případech, kdy není ovladač načten do připojení.
Správce ovladačů uzamkne popisovač prostředí (henv) před voláním SQLAllocHandle a SQLFreeHandle ovladače, pokud handleType je nastaven na SQL_HANDLE_DBC.
Když aplikace volá SQLDisconnect, Správce ovladačů volá SQLDisconnect v ovladači. Ovladač však zůstane načtený pro případ, že se k němu aplikace znovu připojí. Když aplikace volá SQLFreeHandle s SQL_HANDLE_DBC možnost, Driver Manager volá SQLFreeHandle v ovladači. Pokud ovladač nepoužívá žádná jiná připojení, správce ovladačů pak volá SQLFreeHandle v ovladači s možností SQL_HANDLE_ENV a uvolní ovladač.