Уроки Iczelion'а


Урок 3. Подготовка и Использование Инструкций - часть 5


  • Длина значения параметра, сохраненного в буфере, указанном ParameterValuePtr. Это значение игнорируется, если тип параметра не текстовая строка или двоичный. Не путайте это с BufferLength. Пример прояснит это. Предположим, что параметр - текстовая строка. Столбец - шириной 20 байт, т.е. вы распределяете 21-байтовый буфер и передаёте его адрес в ParameterValuePtr. Как раз перед запросом SQLExecute, вы помещали строку "Bob" в буфер, эта строка - длиной в 3 байта, таким образом вы нуждаетесь в передаче значения 3 переменной, указанной pStrLenOrIndPtr.
  • SQL_NTS. Значение параметра - строка с нулевым символом в конце.
  • SQL_NULL_DATA. Значение параметра NULL.
  • SQL_DEFAULT_PARAM. Процедура должна использовать значение параметра по умолчанию, с большим преоритетом чем значение, полученное от приложения. Это соответствует только для процедур, которые имеют заданные по умолчанию значения параметра.
  • SQL_DATA_AT_EXEC. Данные для параметра будут посланы в SQLPUTDATA. Так как данных может быть слишком много, чтобы они сохранялись в памяти, вы сообщаете ODBC драйверу, что вы пошлете данные к нему через SQLPUTDATA.
  •   Вы конечно можете сказать, что очень много возможных значений для pStrLenOrIndPtr, но главным образом, мы будем использовать только первую или третью опцию

      Пример: .data SQLString db "select telephoneNo from employee where name=?",0 Sample1 db "Bob",0 Sample2 db "Mary",0 .data? buffer db 21 dup(?) StrLen dd ? .code ........ invoke SQLPrepare, hStmt, addr SQLString,sizeof SQLString invoke SQLBindParameter, hStmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, 20, 0, addr buffer, sizeof buffer, addr StrLen ;=========================================== ; First run ;=========================================== invoke lstrcpy, addr buffer, addr Sample1 mov StrLen, sizeof Sample1 invoke SQLExecute, hStmt ;=========================================== ; Second run ;=========================================== invoke lstrcpy, addr buffer, addr Sample2 mov StrLen, sizeof Sample2




    - Начало -  - Назад -  - Вперед -



    Книжный магазин