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.
Uygulama, SQLBindParameter'ı çağırarak parametreleri bağlar. SQLBindParameter her seferinde bir parametre bağlar. Bununla birlikte, uygulama aşağıdakileri belirtir:
Parametre numarası. Parametreler, 1 sayısından başlayarak SQL deyiminde artan parametre sırasına göre numaralandırılır. SQL deyimindeki parametre sayısından daha yüksek bir parametre numarası belirtmek yasal olsa da, deyimi yürütürken parametre değeri yoksayılır.
Parametre türü (giriş, giriş/çıkış veya çıkış). Yordam çağrılarındaki parametreler dışında, tüm parametreler giriş parametreleridir. Daha fazla bilgi için bu bölümün devamında yer alan Yordam Parametreleri bölümüne bakın.
Parametresine bağlı değişkenin C veri türü, adresi ve bayt uzunluğu. Sürücü, C veri türünden SQL veri türüne veri dönüştürebilmelidir veya bir hata döndürülür. Desteklenen dönüştürmelerin listesi için bkz. Ek D: Veri Türleri'nde Verileri C'den SQL Veri Türlerine Dönüştürme .
Parametrenin kendisinin SQL veri türü, hassaslığı ve ölçeği.
Uzunluk/gösterge arabelleğinin adresi. İkili veya karakter verilerinin bayt uzunluğunu sağlar, verilerin NULL olduğunu belirtir veya verilerin SQLPutData ile gönderileceğini belirtir. Daha fazla bilgi için bkz. Uzunluk/Gösterge Değerlerini Kullanma.
Örneğin, aşağıdaki kod SalesPerson ve CustID değerlerini SalesPerson ve CustID sütunlarının parametrelerine bağlar. SalesPerson değişken uzunlukta karakter verileri içerdiğinden, kod SalesPerson (11) bayt uzunluğunu belirtir ve SalesPersonLenOrInd öğesini SalesPerson içindeki verilerin bayt uzunluğunu içerecek şekilde bağlar. Sabit uzunlukta tamsayı verileri içerdiğinden bu bilgiler CustID için gerekli değildir.
SQLCHAR SalesPerson[11];
SQLINTEGER SalesPersonLenOrInd, CustIDInd;
SQLUINTEGER CustID;
// Bind SalesPerson to the parameter for the SalesPerson column and
// CustID to the parameter for the CustID column.
SQLBindParameter(hstmt1, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, 10, 0,
SalesPerson, sizeof(SalesPerson), &SalesPersonLenOrInd);
SQLBindParameter(hstmt1, 2, SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER, 10, 0,
&CustID, 0, &CustIDInd);
// Set values of salesperson and customer ID and length/indicators.
strcpy_s((char*)SalesPerson, _countof(SalesPerson), "Garcia");
SalesPersonLenOrInd = SQL_NTS;
CustID = 1331;
CustIDInd = 0;
// Execute a statement to get data for all orders made to the specified
// customer by the specified salesperson.
SQLExecDirect(hstmt1,"SELECT * FROM Orders WHERE SalesPerson=? AND CustID=?",SQL_NTS);
SQLBindParameter çağrıldığında, sürücü bu bilgileri deyiminin yapısında depolar. deyimi yürütülürken, parametre verilerini almak ve veri kaynağına göndermek için bilgileri kullanır.
Uyarı
ODBC 1.0'da parametreler SQLSetParam ile ilişkiliydi. Driver Manager, uygulama ve sürücü tarafından kullanılan ODBC sürümlerine bağlı olarak SQLSetParam ile SQLBindParameter arasındaki çağrıları eşler.