Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uygulamaların sürücü işlevlerini doğrudan çağırmadığını unutmayın. Bunun yerine, aynı ada sahip Driver Manager işlevlerini çağırır ve Driver Manager da sürücü işlevlerini çağırır. Genellikle, bu hemen hemen gerçekleşir. Örneğin, uygulama Driver Manager'da SQLExecute'i çağırır ve birkaç hata denetiminden sonra Sürücü Yöneticisi sürücüde SQLExecute'i çağırır.
Bağlantı işlemi farklıdır. Uygulama SQLAllocHandle'ı SQL_HANDLE_ENV ve SQL_HANDLE_DBC seçenekleriyle çağırdığında, fonksiyon yalnızca Sürücü Yöneticisi'nde ayırma işlemini gerçekleştirir. Sürücü Yöneticisi, hangi sürücünün çağrıldığını bilmediğinden sürücüde bu işlevi çağırmaz. Benzer şekilde, uygulama bağlı olmayan bir bağlantının tutamacını SQLSetConnectAttr veya SQLGetConnectAttr'a geçirirse, işlevi yalnızca Driver Manager yürütür. Öznitelik değerini bağlantı tutamacından depolar veya alır ve ayarlanmamış ve ODBC'nin varsayılan değeri tanımlamadığı bir öznitelik için bir değer alırken SQLSTATE 08003 (Bağlantı açık değil) döndürür.
Uygulama SQLConnect, SQLDriverConnect veya SQLBrowseConnect'i çağırdığında, sürücü yöneticisi önce hangi sürücünün kullanılacağını belirler. Ardından bağlantıda bir sürücünün yüklü olup olmadığını denetler:
Bağlantıda hiçbir sürücü yüklü değilse, Sürücü Yöneticisi belirtilen sürücünün aynı ortamdaki başka bir bağlantıya yüklenip yüklenmediğini denetler. Aksi takdirde, Sürücü Yöneticisi sürücüyü bağlantıda yükler ve SQL_HANDLE_ENV seçeneğiyle sürücüde SQLAllocHandle'ı çağırır.
Daha sonra Sürücü Yöneticisi, sürücüde SQLAllocHandle'ı SQL_HANDLE_DBC seçeneğiyle (yalnızca yüklenmiş olsa da olmasa da) çağırır. Uygulama herhangi bir bağlantı özniteliği ayarlarsa, Driver Manager sürücüde SQLSetConnectAttr'ı çağırır; hata oluşursa, Driver Manager'ın bağlantı işlevi SQLSTATE IM006 döndürür (Sürücünün SQLSetConnectAttr başarısız oldu). Son olarak, Sürücü Yöneticisi sürücüdeki bağlantı işlevini çağırır.
Belirtilen sürücü bağlantıya yüklenirse, Sürücü Yöneticisi yalnızca sürücüdeki bağlantı işlevini çağırır. Bu durumda, sürücü bağlantıdaki tüm bağlantı özniteliklerinin geçerli ayarlarını koruduğundan emin olmalıdır.
Bağlantıda farklı bir sürücü yüklüyse, Driver Manager bağlantıyı boşaltmak için sürücüdeki SQLFreeHandle'ı çağırır. Sürücüyü kullanan başka bağlantı yoksa, Driver Manager ortamı boşaltmak için sürücüdeki SQLFreeHandle'ı çağırır ve sürücüyü kaldırır. Ardından Sürücü Yöneticisi, bağlantıda bir sürücü yüklenmediğinde gerçekleştirdiği işlemlerin aynısını gerçekleştirir.
Driver Manager, HandleType SQL_HANDLE_DBC olarak ayarlandığında sürücünün SQLAllocHandle ve SQLFreeHandle çağrısından önce ortam tutamacını (henv) kilitler.
Uygulama SQLDisconnect'i çağırdığında, Driver Manager sürücüde SQLDisconnect'i çağırır. Ancak, uygulamanın sürücüye yeniden bağlanması durumunda sürücüyü yüklü bırakır. Uygulama SQL_HANDLE_DBC seçeneğiyle SQLFreeHandle'ı çağırdığında, Driver Manager sürücüde SQLFreeHandle'ı çağırır. Sürücü başka hiçbir bağlantı tarafından kullanılmıyorsa, Sürücü Yöneticisi sürücüdeki SQLFreeHandle'ı SQL_HANDLE_ENV seçeneğiyle çağırır ve sürücüyü kaldırır.