Aracılığıyla paylaş


Veri AraBelleği Türü

Arabelleğin C veri türü uygulama tarafından belirtilir. Tek bir değişkende, uygulama değişkeni ayırdığında bu durum oluşur. Genel bellekle (yani void türünde bir işaretçiyle işaret edilen bellek) bu durum, uygulama belleği belirli bir türe dönüştürdüğünde oluşur. Sürücü bu türü iki şekilde bulur:

  • Veri arabelleği türü argümanı. SQLBindCol'da TargetValuePtr ile ilişkili arabellek gibi parametre değerlerini ve sonuç kümesi verilerini aktarmak için kullanılan arabellekler genellikle SQLBindCol'dakiTargetType bağımsız değişkeni gibi ilişkili bir tür bağımsız değişkenine sahiptir. Bu argümanda, uygulama arabelleğin türüne karşılık gelen C tipi tanımlayıcısını geçirir. Örneğin, aşağıdaki SQLBindCol çağrısında, SQL_C_TYPE_DATE değeri sürücüye Tarih arabelleğinin bir SQL_DATE_STRUCT olduğunu bildirir:

    SQL_DATE_STRUCT Date;  
    SQLINTEGER  DateInd;  
    SQLBindCol(hstmt, 1, SQL_C_TYPE_DATE, &Date, 0, &DateInd);  
    

    Tür tanımlayıcıları hakkında daha fazla bilgi için, bu bölümün devamında yer alan ODBC'deki Veri Türleri bölümüne bakın.

  • Önceden tanımlanmış tür. SQLGetInfo'daInfoValuePtr bağımsız değişkeni tarafından işaret edilen arabellek gibi seçenekleri veya öznitelikleri göndermek ve almak için kullanılan arabellekler, belirtilen seçeneğe bağlı olarak sabit bir türe sahiptir. Sürücü, veri arabelleğinin bu türde olduğunu varsayar; bu tür bir arabellek ayırmak uygulamanın sorumluluğundadır. Örneğin, aşağıdaki SQLGetInfo çağrısında, sürücü arabelleğin 32 bitlik bir tamsayı olduğunu varsayar çünkü SQL_STRING_FUNCTIONS seçeneği bunu gerektirir:

    SQLUINTEGER StringFuncs;  
    SQLGetInfo(hdbc, SQL_STRING_FUNCTIONS, (SQLPOINTER) &StringFuncs, 0,  
                NULL);  
    

Sürücü, arabellekteki verileri yorumlamak için C veri türünü kullanır.