Форум » [x]Harbour » adordd баг » Ответить

adordd баг

Pasha: Использую adordd для выборки данных из БД firebird, Firebird ODBC Driver v2.0. При чтении значения поля типа BLOB SUB_TYPE 1 SEGMENT SIZE 16384 получаю ошибку 9006 - невозможно выделить память. Разбираюсь. Нахожу в функции ADO_GETVALUE модуля adordd.prg это место: xValue := PadR( xValue, :Fields( nField - 1 ):DefinedSize ) считываю oField:DefinedSize, получаю 2147483647. Естественно, что происходит ошибка на hb_xgrab Странно только то, что несколько месяцев назад я делал этот запрос, и такой ошибки не было на этой же БД. В ADO_GETVALUE надо поставить проверку: if :Fields( nField - 1 ):DefinedSize != 2147483647 ...

Ответов - 2

Dima: Pasha пишет: 2147483647 А что это за магическая цифра ?

Pasha: максимальное 32-х битовое значение Там тип поля ado оказывается adLongVarChar, и adordd его интерпретирует как string. Может лучше поставить его как memo ? Это в функции ADO_GETFIELDTYPE



полная версия страницы