2010-05-07 6 views
1

Когда я добавляюFreeTDS переполнении памяти от DBD :: Sybase

client charset = UTF-8 

в мой файл freetds.conf, моя программа DBD :: Sybase выделяет:

Out of memory! 

и заканчивается. Это происходит, когда я вызываю execute() в запросе SQL-запроса, который возвращает любые поля ntext. Я могу возвращать числовые данные, datetimes и nvarchars просто отлично, но всякий раз, когда одно из полей вывода является ntext, я получаю эту ошибку.

Все эти запросы отлично работают без настройки UTF-8, но мне нужно обрабатывать некоторые символы, которые вызывают предупреждения под набором символов по умолчанию. (См. related question.)

Сообщение об ошибке не отформатировано аналогично другим сообщениям DBD :: Sybase, похоже, отформатированы. Я получаю сообщение о том, что выдается rollback(). (Мой флаговый флаг AutoCommit соблюдается.) Я думаю, что я где-то читал, что FreeTDS использует программу iconv для преобразования между наборами символов; возможно ли, что это сообщение испускается из iconv?

Если я выполняю тот же запрос с теми же настройками freetds.conf в tsql (shell SQL командной строки FreeTDS), я не получаю ошибку.

Я подключаюсь к SQL Server.

Что мне нужно для успешного возвращения этих запросов?

ответ

3

Я видел это в .conf файле - посмотреть, если это помогает:

# Command and connection timeouts 
; timeout = 10 
; connect timeout = 10 
# If you get out of memory errors, it may mean that your client 
# is trying to allocate a huge buffer for a TEXT field. 
# (Microsoft servers sometimes pretend TEXT columns are 
# 4 GB wide!) If you have this problem, try setting 
# 'text size' to a more reasonable limit 
text size = 64512 
+0

Это исправлено; Спасибо! – skiphoppy

0

Эти ссылки кажутся уместным, а также и показать, каким образом установка может быть изменена без изменения файла freetds.conf:

http://lists.ibiblio.org/pipermail/freetds/2002q1/006611.html http://www.freetds.org/faq.html#textdata

Часто задаваемые вопросы являются особенно бесполезными, не перечисляя фактическое сообщение об ошибке.

Смежные вопросы