SQLDrivers İşlevi

Uygunluk
Tanıtılan Sürüm: ODBC 2.0 Standartlara Uyum: ODBC

Summary
SQLDrivers sürücü açıklamalarını ve sürücü özniteliği anahtar kelimelerini listeler. Bu fonksiyon yalnızca Driver Manager tarafından uygulanır.

Syntax

  
SQLRETURN SQLDrivers(  
     SQLHENV         EnvironmentHandle,  
     SQLUSMALLINT    Direction,  
     SQLCHAR *       DriverDescription,  
     SQLSMALLINT     BufferLength1,  
     SQLSMALLINT *   DescriptionLengthPtr,  
     SQLCHAR *       DriverAttributes,  
     SQLSMALLINT     BufferLength2,  
     SQLSMALLINT *   AttributesLengthPtr);  

Arguments

EnvironmentHandle
[Giriş] Ortam kontrolü.

Yön
[Giriş] Sürücü Yöneticisi'nin listedeki bir sonraki sürücü tanımını mı getireceğini (SQL_FETCH_NEXT) veya aramanın listenin başından mı başladığını (SQL_FETCH_FIRST) belirler.

DriverDescription
[Çıkış] Sürücü tanımını döndürmek için bir tampon işareti.

DriverDescription NULL ise, DescriptionLengthPtr yine de DriverDescription tarafından işaret edilen tamponda döndürülebilecek toplam karakter sayısını (karakter verisi için null-sonlandırma karakteri hariç) döndürecektir.

BufferLength1
[Giriş] *DriverDescription buffer'ının uzunluğu, karakter cinsinden.

AçıklamaUzunlukPtr
[Çıkış] *DriverDescription'da döndürülebilecek toplam karakter sayısını (null-sonlandırma karakteri hariç) döndürmek için bir tampon işareti. Eğer döndürülebilecek karakter sayısı BufferLength1'den büyük veya eşitse, *DriverDescription'daki sürücü açıklaması BufferLength1'e kısaltılır ve null-sonlandırma karakterinin uzunluğu çıkarılır.

DriverAttributes
[Çıkış] Sürücü öznitelik değer çiftlerinin listesini döndürmek için bir tampon işareti (bkz. "Yorumlar").

DriverAttributes NULL ise, AttributesLengthPtr yine de DriverAttributes tarafından işaret edilen tamponda döndürülebilecek toplam bayt sayısını (karakter verisi için null-termination karakteri hariç) döndürecektir.

BufferLength2
[Giriş] *DriverAttributes tamponunun uzunluğu, karakter cinsinden. *DriverDescription değeri bir Unicode dizisi ise (SQLDriversW çağrıldığında), BufferLength argümanı çift sayı olmalıdır.

AttributesLengthPtr
[Çıkış] *DriverAttributes'ta döndürülebilecek toplam bayt sayısını (null-termination baytı hariç) döndürmek için bir tampon işaretçisi. Eğer döndürülebilecek bayt sayısı BufferLength2'den büyük veya eşitse, *DriverAttributes'taki özellik değer çiftlerinin listesi BufferLength2'ye kısaltılır ve null-sonlandırma karakterinin uzunluğu çıkarılır.

İadeler

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR ya da SQL_INVALID_HANDLE.

Diagnostics

SQLDrivers SQL_ERROR veya SQL_SUCCESS_WITH_INFO döndürdüğünde, ilişkili bir SQLSTATE değeri alınabilir; bu değer SQLGetDiagRec çağrılarak SQL_HANDLE_ENV HandleType ve EnvironmentHandleHandle'ı ile elde edilebilir. Aşağıdaki tablo, genellikle SQLDrivers tarafından döndürülen SQLSTATE değerlerini listeler ve her birini bu fonksiyon bağlamında açıklar; "(DM)" gösterimi, Sürücü Yöneticisi tarafından döndürülen SQLSTATE açıklamalarından önce gelir. Aksi belirtilmediği sürece, her SQLSTATE değeriyle ilişkili dönüş kodu SQL_ERROR.

SQLSTATE Error Description
01000 Genel uyarı (DM) Sürücü Müdürü'ne özel bilgilendirici mesaj. (İşlev SQL_SUCCESS_WITH_INFO döndürür.)
01004 Dize verileri, sağ kesilmiş (DM) *DriverDescription tamponu tam sürücü açıklamasını geri döndürecek kadar büyük değildi. Bu nedenle, açıklama kısaltıldı. Tam sürücü tanımının uzunluğu *DescriptionLengthPtr. (İşlev SQL_SUCCESS_WITH_INFO döndürür.)

(DM) *DriverAttributes tamponu öznitelik değer çiftlerinin tam listesini döndürecek kadar büyük değildi. Bu nedenle liste kısaltıldı. Kıstırılmamış öznitelik değer çiftleri listesinin uzunluğu *AttributesLengthPtr. (İşlev SQL_SUCCESS_WITH_INFO döndürür.)
HY000 Genel hata Belirli bir SQLSTATE olmayan ve uygulamaya özgü SQLSTATE tanımlanmayan bir hata oluştu. *MessageText arabelleğinde SQLGetDiagRec tarafından döndürülen hata iletisi, hatayı ve nedenini açıklar.
HY001 Bellek ayırma hatası (DM) Sürücü Yöneticisi, işlevin yürütülmesini veya tamamlanmasını desteklemek için gerekli belleği ayıramadı.
HY010 İşlev dizisi hatası (DM) SQLExecute, SQLExecDirect veya SQLMoreResults, StatementHandle için çağrıldı ve SQL_PARAM_DATA_AVAILABLE döndürdü. Bu işlev, tüm akış parametreleri için veri alınmadan önce çağrıldı.
HY013 Bellek yönetimi hatası Büyük olasılıkla düşük bellek koşulları nedeniyle, temel alınan bellek nesnelerine erişilemediğinden işlev çağrısı işlenemedi.
HY090 Geçersiz dize veya arabellek uzunluğu (DM) BufferLength1 argümanı için belirtilen değer 0'dan küçüktü.

(DM) BufferLength2 argümanı için belirtilen değer 0'dan az veya 1'e eşitti.
HY103 Geçersiz erişim kodu (DM) Yön argümanı için belirtilen değer SQL_FETCH_FIRST veya SQL_FETCH_NEXT'a eşit değildi.
HY117 Bilinmeyen işlem durumu nedeniyle bağlantı askıya alındı. Yalnızca bağlantıyı kesme ve salt okunur işlevlere izin verilir. (DM) Askıya alınma durumu hakkında daha fazla bilgi için bkz. SQLEndTran İşlevi.

Comments

SQLDrivers, *DriverDescription buffer'da sürücü tanımını döndürür. *DriverAttributes tamponunda sürücü hakkında ek bilgiyi anahtar kelime-değer çiftlerinin listesi olarak döndürür. Sistem sürücü bilgilerinde listelenen tüm anahtar kelimeler, veri kaynaklarının oluşturulmasını istemek için kullanılan ve bu nedenle isteğe bağlı olan CreateDSN hariç tüm sürücüler için geri gönderilecektir. Her çift bir null bayt ile sonlanır ve tam liste bir null byte ile sonlanır (yani, iki null bayt listenin sonunu işaret eder). Örneğin, C sözdizimi kullanan dosya tabanlı bir sürücü aşağıdaki öznitelik listesini döndürebilir ("\0" bir null karakteri temsil eder):

FileUsage=1\0FileExtns=*.dbf\0\0  

*DriverAttributes tüm listeyi tutacak kadar büyük değilse, liste kısaltılır, SQLDrivers SQLSTATE 01004 (Veri kısaltılmış) döndürür ve listenin uzunluğu (son null-termination baytı hariç) *AttributesLengthPtr'de döner.

Sürücü özellik anahtar kelimeleri, sürücü yüklendiğinde sistem bilgisinden eklenir. Daha fazla bilgi için ODBC Bileşenlerinin Kurulumu bölümünü inceleyebilirsiniz.

Bir uygulama, tüm sürücü açıklamalarını almak için SQLDrivers'i birden fazla kez çağırabilir. Sürücü Yöneticisi bu bilgileri sistem bilgilerinden alır. Artık sürücü açıklaması kalmadığında, SQLDrivers SQL_NO_DATA döner. Eğer SQLDrivers SQL_NO_DATA döndürdükten hemen sonra SQL_FETCH_NEXT ile çağrılırsa, ilk sürücü açıklamasını döndürür. Bir uygulamanın SQLDrivers tarafından gönderilen bilgileri nasıl kullandığına dair bilgi için Bir Veri Kaynağı veya Sürücü Seçme bölümüne bakınız.

Eğer SQL_FETCH_NEXT ilk çağrıldığında SQLDrivers'a iletilirse, SQLDrivers ilk veri kaynağı adını döndürür.

SQLDrivers, Driver Manager'da uygulandığı için, belirli bir sürücünün standartlarına uymasından bağımsız olarak tüm sürücüler için desteklenir.

Hakkında bilgi için Bkz:
Bir veri kaynağına bağlanmak için gereken değerleri keşfetmek ve listelemek SQLBrowseConnect Fonksiyonu
Veri kaynağına bağlanma SQLConnect İşlevi
Veri kaynağı isimlerini döndürmek SQLDataSources Fonksiyonu
Bir bağlantı dizesi veya diyalog kutusu kullanarak bir veri kaynağına bağlanmak SQLDriverConnect İşlevi