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.
ODBC, uygulama değişkenleri tarafından kullanılan C veri türlerini ve karşılık gelen tür tanımlayıcılarını tanımlar. Sonuç kümesi sütunları ve ifade parametrelerine bağlı arabellekler tarafından bunlar kullanılır. Örneğin, bir uygulamanın sonuç kümesi sütunundan karakter biçiminde veri almak istediğini varsayalım. SQLCHAR * veri türüne sahip bir değişken bildirir ve bu değişkeni SQL_C_CHAR türü tanımlayıcısıyla sonuç kümesi sütununa bağlar. C veri türlerinin ve tür tanımlayıcılarının tam listesi için bkz. Ek D: Veri Türleri.
ODBC ayrıca her SQL veri türünden bir C veri türüne varsayılan eşlemeyi tanımlar. Örneğin, veri kaynağındaki 2 baytlık bir tamsayı, uygulamadaki 2 baytlık bir tamsayıyla eşlenir. Varsayılan eşlemeyi kullanmak için bir uygulama SQL_C_DEFAULT türü tanımlayıcısını belirtir. Ancak, birlikte çalışabilirlik nedenleriyle bu tanımlayıcının kullanılması önerilmez.
ODBC 1.x'te tanımlanan tüm tamsayı C veri türleri imzalandı. İmzasız C veri türleri ve karşılık gelen tür tanımlayıcıları ODBC 2.0'a eklendi. Bu nedenle, uygulamaların ve sürücülerin 1.x sürümleriyle ilgilenirken özellikle dikkatli olması gerekir.
C Veri Türü Genişletilebilirliği
ODBC 3.8'de, sürücüye özgü C veri türlerini belirtebilirsiniz. Bu, SQLBindCol, SQLGetData veya SQLBindParameter çağırdığınızda ODBC uygulamalarında bir SQL türünü sürücüye özgü C türü olarak bağlamanızı sağlar. Mevcut C veri türleri yeni sunucu veri türlerini doğru şekilde temsil etmeyebileceği için bu, yeni sunucu türlerini desteklemek için yararlı olabilir. Sürücüye özgü C türlerinin kullanılması, sürücülerin gerçekleştirebileceği dönüştürme sayısını artırabilir.
Örneğin, bir veritabanı yönetim sisteminin (DBMS) tarih ve saati saat dilimi bilgileriyle temsil eden yeni bir SQL türü ( DATETIMEOFFSET) tanıttığı varsayılır. ODBC'de DATETIMEOFFSET'e karşılık gelen belirli bir C türü yoktur. Bir uygulamanın DATETIMEOFFSET'i SQL_C_BINARY olarak bağlaması ve kullanıcı tanımlı bir veri türüne dönüştürmesi gerekir. ODBC 3.8'de C veri türü genişletilebilirliği ile başlayarak, bir sürücü yeni bir karşılık gelen C türü tanımlayabilir. Örneğin, yeni SQL türü DATETIMEOFFSET için sürücü, SQL_C_DATETIMEOFFSET gibi yeni bir karşılık gelen C türü tanımlayabilir. Ardından, bir uygulama yeni SQL türünü sürücüye özgü bir C türü olarak bağlayabilir.
Sürücüde C veri türü aşağıdaki gibi tanımlanır:
Bir uygulama, ODBC sürücüsü ve Sürücü Yöneticisi için ODBC uyumluluk düzeyi 3,8 (veya üzeridir).
Sürücüye özgü bir C türünün veri aralığı 0x4000 ile 0x7FFF arasındadır.
Sürücü, C türüne karşılık gelen verilerin yapısını tanımlar. Bu, sürücüye özgü SDK'da yapılabilir.
Sürücü yöneticisi, 0x4000 ve 0x7FFF aralığında tanımlanan bir C türünü doğrulamaz; sürücü doğrulamayı ve herhangi bir veri türü dönüştürme işlemini gerçekleştirir. Ancak sürücü yöneticisine geçirilen bir C türünün veri aralığı 0x0000 ile 0x3FFF arasında veya 0x8000 ile 0xFFFF arasındaysa, sürücü yöneticisi C veri türünü doğrular.
Uyarı
Sürücüye özgü C veri türleri sürücü belgelerinde açıklanmalıdır.
3.8 ODBC uyumluluk düzeyini belirtmek için, uygulama SQL_ATTR_ODBC_VERSION özniteliği SQL_OV_ODBC3_80 olarak ayarlanmış SQLSetEnvAttr'ıçağırır. Bir uygulama, sürücünün sürümünü belirlemek için SQL_DRIVER_ODBC_VER ile SQLGetInfo çağırır.
ODBC 3.8 hakkında daha fazla bilgi için bkz. ODBC 3.8'deki Yenilikler.