Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Приложение привязывает параметры путем вызова SQLBindParameter. SQLBindParameter привязывает один параметр за раз. С его помощью приложение указывает следующее:
Номер параметра. Параметры нумеруются в увеличении порядка параметров в инструкции SQL, начиная с числа 1. Хотя он является законным, чтобы указать номер параметра, превышающий число параметров в инструкции SQL, значение параметра будет игнорироваться при выполнении инструкции.
Тип параметра (входные, входные и выходные данные или выходные данные). За исключением параметров в вызовах процедур, все параметры являются входными параметрами. Дополнительные сведения см. в разделе "Параметры процедуры" далее в этом разделе.
Тип данных C, адрес и длина байтов переменной, привязанной к параметру. Драйвер должен иметь возможность преобразовать данные из типа данных C в тип данных SQL или возвращается ошибка. Список поддерживаемых преобразований см. в разделе "Преобразование данных из C в типы данных SQL" в приложении D: Типы данных.
Тип данных SQL, точность и масштаб самого параметра.
Адрес буфера длины или индикатора. Он предоставляет длину байтов двоичных или символьных данных, указывает, что данные равно NULL или указывают, что данные будут отправляться с помощью SQLPutData. Дополнительные сведения см. в разделе "Использование значений длины или индикатора".
Например, следующий код привязывает SalesPerson и CustID к параметрам для столбцов SalesPerson и CustID. Так как SalesPerson содержит символьные данные, которые являются переменной длиной, код указывает длину байтов SalesPerson (11) и привязывает SalesPersonLenOrInd к байтовой длине данных в SalesPerson. Эта информация не требуется для CustID , так как она содержит целые данные, которые являются фиксированной длиной.
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 драйвер сохраняет эти сведения в структуре инструкции. При выполнении инструкции она использует сведения для извлечения данных параметра и отправки его в источник данных.
Примечание.
В ODBC 1.0 параметры были привязаны к SQLSetParam. Диспетчер драйверов сопоставляет вызовы между SQLSetParam и SQLBindParameter в зависимости от версий ODBC, используемых приложением и драйвером.