Aracılığıyla paylaş


SQLDataSourceToDriver İşlevi

SQLDataSourceToDriver ODBC sürücüleri için çevirileri destekler. Bu işlev ODBC özellikli uygulamalar tarafından çağrılmaz; uygulamalar SQLSetConnectAttraracılığıyla çeviri ister. SQLSetConnectAttr'de belirtilen ConnectionHandle ile ilişkili sürücü, veri kaynağından sürücüye akan tüm verilerin çevirilerini gerçekleştirmek için belirtilen DLL'yi çağırır. ODBC başlatma dosyasında varsayılan çeviri DLL'i belirtilebilir.

Sözdizimi

  
BOOL SQLDataSourceToDriver(  
     UDWORD     fOption,  
     SWORD      fSqlType,  
     PTR        rgbValueIn,  
     SDWORD     cbValueIn,  
     PTR        rgbValueOut,  
     SDWORD     cbValueOutMax,  
     SDWORD *   pcbValueOut,  
     UCHAR *    szErrorMsg,  
     SWORD      cbErrorMsgMax,  
     SWORD *    pcbErrorMsg);  

Bağımsız değişken

fOption
[Giriş] Seçenek değeri.

fSqlType
[Giriş] SQL veri türü. Bu bağımsız değişken sürücüye rgbValueIn
uygulama tarafından kabul edilebilir bir forma nasıl dönüştürüldüğünü bildirir. Geçerli SQL veri türlerinin listesi için Ek D: Veri Türleri'nin SQL Veri Türleri bölümüne bakın.

rgbValueIn
[Giriş] Çevrilecek değer.

cbValueIn
[Giriş] rgbValueInuzunluğu.

rgbValueOut
[Çıkış] Çevirinin sonucu.

Not

Çeviri DLL'i bu değeri null olarak sonlandırmaz.

cbValueOutMax
[Giriş] rgbValueOut
uzunluğu.

pcbValueOut
[Çıkış] rgbValueOutiçinde döndürülecek toplam bayt sayısı (null sonlandırma bayt hariç).

Karakter veya ikili veriler için, bu cbValueOutMaxdeğerinden büyük veya buna eşitse, rgbValueOut veriler cbValueOutMax bayt kesilir.

Diğer tüm veri türleri için cbValueOutMax değeri yoksayılır ve çeviri DLL'si rgbValueOut boyutunun fSqlTypeile belirtilen SQL veri türünün varsayılan C veri türünün boyutu olduğunu varsayar.

pcbValueOut bağımsız değişkeni null işaretçi olabilir.

szErrorMsg
[Çıkış] Hata iletisi için depolama işaretçisi. Çeviri başarısız olmadığı sürece bu boş bir dizedir.

cbErrorMsgMax
[Giriş] szErrorMsguzunluğu.

pcbErrorMsg
[Çıkış] szErrorMsgiçinde döndürülecek toplam bayt sayısına (null sonlandırma baytını hariç) yönelik işaretçi. Bu cbErrorMsgdeğerinden büyük veya buna eşitse, szErrorMsg içindeki veriler cbErrorMsgMax null sonlandırma karakteri çıkarılarak kesilir. pcbErrorMsg bağımsız değişkeni null işaretçi olabilir.

Döndürür

Çeviri başarılı olursa DOĞRU, çeviri başarısız olursa YANLIŞ.

Yorum

Sürücü, veri kaynağından sürücüye geçen tüm verileri (sonuç kümesi verileri, tablo adları, satır sayıları, hata iletileri vb.) çevirmek için SQLDataSourceToDriver çağırır. Çeviri DLL'i, verilerin türüne ve çeviri DLL'sinin amacına bağlı olarak bazı verileri çeviremeyebilir; örneğin, karakter verilerini bir kod sayfasından diğerine çeviren bir DLL, tüm sayısal ve ikili verileri yoksayar.

fOption değeri, SQL_ATTR_TRANSLATE_OPTION özniteliğine sahip SQLSetConnectAttr çağrılarak belirtilen vParam değerine ayarlanır. Belirli bir çeviri DLL'sinde belirli bir anlamı olan 32 bitlik bir değerdir. Örneğin, belirli bir karakter kümesi çevirisi belirtebilir.

rgbValueIn ve rgbValueOutiçin aynı arabellek belirtilirse, arabellekteki verilerin çevirisi yerinde gerçekleştirilir.

cbValueIncbValueOutMaxve pcbValueOut SDWORD türünde olsa da SQLDataSourceToDriver büyük işaretçileri desteklemez.

SQLDataSourceToDriver FALSE döndürürse, çeviri sırasında veri kesilmesi olmuş olabilir. pcbValueOut (çıkış arabelleğinde döndürülecek bayt sayısı) cbValueOutMax (çıkış arabelleğinin uzunluğu) 'den büyükse kesme işlemi gerçekleşir. Sürücünün kesme işleminin kabul edilebilir olup olmadığını belirlemesi gerekir. Kesme gerçekleşmediyse SQLDataSourceToDriver başka bir hata nedeniyle FALSE döndürdü. Her iki durumda da szErrorMsgbelirli bir hata iletisi döndürülür.

Verileri çevirme hakkında daha fazla bilgi için bkz. Çeviri DLL'leri.

Hakkında bilgi için Görmek
Veri kaynağına gönderilen verileri çevirme SQLDriverToDataSource
Bağlantı özniteliğinin ayarını döndürme SQLGetConnectAttr
Bağlantı özniteliği ayarlama SQLSetConnectAttr