На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела C/C++: Базы данных
Модераторы: B.V.
  
    > SQLBindParameter для text и varchar(max)
      Приветствую всех!
      Вопрос такой, как байндить параметры для text и varchar(max), вернее указать максимальный размер стобца.
      Клиент работает как с MSDE2000, так и SQL Server 2008.
      Для varchar(max) в принципе разобрался, что-то типо этого:
      ExpandedWrap disabled
        SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 0, 0, (VOID*)1, 0, &cbTextSize)

      или так:
      ExpandedWrap disabled
        SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, SQL_SS_LENGTH_UNLIMITED, 0, (VOID*)1, 0, &cbTextSize)

      Но это не прокатывает для MSDE2000, он не поддерживает тип varchar(max).
      Писал так:
      ExpandedWrap disabled
        SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_LONGVARCHAR, 0, 0, (VOID*)1, 0, &cbTextSize)

      Вылетает с ошибкой:
      ExpandedWrap disabled
        [Microsoft][ODBC SQL Server Driver]Недопустимое значение точности.

      Можно в принципе ручками указать:
      ExpandedWrap disabled
        SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_LONGVARCHAR, 2147483647, 0, (VOID*)1, 0, &cbTextSize)

      Но это будет не комильфо ;)
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0189 ]   [ 17 queries used ]   [ Generated: 25.04.24, 15:06 GMT ]