SQLDataSources İşlevi

Uygunluk
Kullanıma Sunulan Sürüm: ODBC 1.0 Standartları Uyumluluğu: ISO 92

Summary
SQLDataSources , bir veri kaynağı hakkında bilgi döndürür. Bu fonksiyon yalnızca Driver Manager tarafından uygulanır.

Syntax

  
SQLRETURN SQLDataSources(  
     SQLHENV          EnvironmentHandle,  
     SQLUSMALLINT     Direction,  
     SQLCHAR *        ServerName,  
     SQLSMALLINT      BufferLength1,  
     SQLSMALLINT *    NameLength1Ptr,  
     SQLCHAR *        Description,  
     SQLSMALLINT      BufferLength2,  
     SQLSMALLINT *    NameLength2Ptr);  

Arguments

EnvironmentHandle
[Giriş] Ortam kontrolü.

Yön
[Giriş] Sürücü Yöneticisi'nin hangi veri kaynağına dair bilgi verdiğini belirler. Şu olabilir:

SQL_FETCH_NEXT (listedeki bir sonraki veri kaynağı adını almak için), SQL_FETCH_FIRST (listenin başından getirmek), SQL_FETCH_FIRST_USER (ilk kullanıcı DSN'ini almak için) veya SQL_FETCH_FIRST_SYSTEM (ilk sistem DSN'ini almak için).

Direction SQL_FETCH_FIRST olarak ayarlandığında, Direction ayarlanmış SQLDataSources çağrıları hem kullanıcı hem de sistem DSN'lerini SQL_FETCH_NEXT getirir. Direction SQL_FETCH_FIRST_USER olarak ayarlandığında, Direction SQL_FETCH_NEXT olarak ayarlanmış SQLDataSources çağrıları yalnızca kullanıcı DSN'lerini geri getirir. Direction SQL_FETCH_FIRST_SYSTEM olarak ayarlandığında, Direction SQL_FETCH_NEXT olarak ayarlanmış SQLDataSource'a yapılan tüm sonraki çağrılar yalnızca sistem DSN'lerini geri getirir.

SunucuAdı
[Çıkış] Veri kaynağı adının döndürüleceği bir tampona işaretçi.

Eğer ServerName NULL ise, NameLength1Ptr yine de ServerName tarafından işaretlenen tamponda döndürülebilecek toplam karakter sayısını (karakter verisi için null-sonlandırma karakteri hariç) döndürecektir.

BufferLength1
[Giriş] *ServerName tamponunun uzunluğu, karakter cinsinden; bu, SQL_MAX_DSN_LENGTH artı null-sonlandırma karakterinden daha uzun olması gerekmez.

NameLength1Ptr
[Çıkış] *ServerName'de döndürülebilecek toplam karakter sayısını (null-termination 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, *ServerName içindeki veri kaynağı adı BufferLength1 olarak kısaltılır ve null-sonlandırma karakterinin uzunluğu çıkarılır.

Açıklama
[Çıkış] Veri kaynağına bağlı sürücünün tanımını döndürmek için bir tampona işaret edin. Örneğin, dBASE veya SQL Server.

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

BufferLength2
[Giriş] *Description buffer'ın karakterlerindeki uzunluk.

NameLength2Ptr
[Çıkış] *Açıklama bölümünde döndürülebilecek toplam karakter sayısını (null-sonlandırma karakteri hariç) döndürülecek bir tampon işareti. Eğer döndürülebilecek karakter sayısı BufferLength2'den büyük veya eşitse, *Description içindeki sürücü açıklaması 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

SQLDataSources SQL_ERROR veya SQL_SUCCESS_WITH_INFO döndürdüğünde, ilişkili bir SQLSTATE değeri SQLGetDiagRec çağrılıp, SQL_HANDLE_ENV HandleType ve EnvironmentHandle ile elde edilebilir. Aşağıdaki tablo, genellikle SQLDataSources tarafından duygulanan SQLSTATE değerlerini listeler ve her birini bu fonksiyonun 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) *Sunucu Adı, tam veri kaynağı adını döndürecek kadar büyük değildi. Bu nedenle, isim kısaltıldı. Tüm veri kaynağı adının uzunluğu *NameLength1Ptr içinde döner. (İşlev SQL_SUCCESS_WITH_INFO döndürür.)

(DM) Buffer *Açıklama , tam sürücü tanımını geri döndürecek kadar büyük değildi. Bu nedenle, açıklama kısaltıldı. Kısmamış veri kaynağı açıklamasının uzunluğu *NameLength2Ptr içinde döner. (İşlev SQL_SUCCESS_WITH_INFO döndürür.)
HY000 Genel hata (DM) Belirli bir SQLSTATE olmayan ve uygulamaya özgü SQLSTATE tanımlanmamış bir hata meydana geldi. *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 küçüktü.
HY103 Geçersiz erişim kodu (DM) Yön argümanı için belirtilen değer SQL_FETCH_FIRST, SQL_FETCH_FIRST_USER, SQL_FETCH_FIRST_SYSTEM 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

SQLDataSources Sürücü Yöneticisi'nde 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.

Bir uygulama, tüm veri kaynakları isimlerini almak için SQLDataSources'ı birden fazla kez çağırabilir. Sürücü Yöneticisi bu bilgileri sistem bilgilerinden alır. Artık veri kaynağı adı kalmadığında, Sürücü Yöneticisi SQL_NO_DATA döndürür. Eğer SQLDataSources SQL_NO_DATA döndürdükten hemen sonra SQL_FETCH_NEXT ile çağrılırsa, ilk veri kaynağı adını döndürür. Bir uygulamanın SQLDataSources 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 SQLDataSources'a iledilirse, ilk veri kaynağı adını döndürür.

Sürücü, veri kaynakları adlarının gerçek veri kaynaklarına nasıl eşlendiğini belirler.

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
Bir bağlantı dizesi veya diyalog kutusu kullanarak bir veri kaynağına bağlanmak SQLDriverConnect İşlevi
Geri dönen sürücü tanımları ve özellikleri SQLDrivers Fonksiyonu