Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Тип данных C буфера задается приложением. При использовании одной переменной это происходит, когда приложение выделяет переменную. Это происходит, когда в приложении универсальная память (то есть память, указываемая указателем типа void) приводится к конкретному типу. Драйвер обнаруживает этот тип двумя способами:
Аргумент типа буфера данных. Буферы, используемые для передачи значений параметров и результирующих данных, таких как буфер, привязанный к TargetValuePtr в SQLBindCol, обычно имеют связанный аргумент типа, например аргумент TargetType в SQLBindCol. В этом аргументе приложение передает идентификатор типа C, соответствующий типу буфера. Например, в следующем вызове SQLBindCol значение SQL_C_TYPE_DATE сообщает драйверу, что буфер Date является SQL_DATE_STRUCT.
SQL_DATE_STRUCT Date; SQLINTEGER DateInd; SQLBindCol(hstmt, 1, SQL_C_TYPE_DATE, &Date, 0, &DateInd);Дополнительные сведения об идентификаторах типов см. в разделе "Типы данных в ODBC " далее в этом разделе.
Предопределенный тип. Буферы, используемые для отправки и извлечения параметров или атрибутов, например буфера, на который указывает аргумент InfoValuePtr в SQLGetInfo, имеют фиксированный тип, который зависит от указанного параметра. Драйвер предполагает, что буфер данных имеет этот тип; это ответственность приложения за выделение буфера этого типа. Например, в следующем вызове SQLGetInfo драйвер предполагает, что буфер является 32-разрядным целым числом, так как это то, что требуется параметру SQL_STRING_FUNCTIONS:
SQLUINTEGER StringFuncs; SQLGetInfo(hdbc, SQL_STRING_FUNCTIONS, (SQLPOINTER) &StringFuncs, 0, NULL);
Драйвер использует тип данных C для интерпретации данных в буфере.