Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 встака binary string сломалась, дело в размере 32кб? фб не умеет? как победить?  [new]
Onax
Member

Откуда:
Сообщений: 19
есть таблица (миграции ЕФ)
CREATE TABLE "__MigrationHistory" (	 
	"Model" BLOB SUB_TYPE 0 NOT NULL,	 
) ;


идет инсерт данных длинная строка x'123123123траливали'
и валится ошибка некорректное окончание строки и т.п бредни, причем как из приложения, так и через IBExpert

единственная догадка почему раньше работало(~2 года), а теперь перестало - таблиц и столбцов становилась всё больше и больше
в итоге размер данных для этого столбца просто вышел за 32 кб (предыдущие уже были 31xxx кб) после добавления пары таблиц в схему

нужны какие-нибудь идеи в чем проблема и что можно сделать, учитывая что весь sql генерируется...
16 сен 17, 17:06    [20800809]     Ответить | Цитировать Сообщить модератору
 Re: встака binary string сломалась, дело в размере 32кб? фб не умеет? как победить?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 43662

Onax
нужны какие-нибудь идеи в чем проблема и что можно сделать, учитывая что весь sql
генерируется...

Да, размер литерала ограничен. Нет, с генерируемым SQL ничего сделать нельзя, надо
переходить на параметризованный.

Posted via ActualForum NNTP Server 1.5

16 сен 17, 18:40    [20800897]     Ответить | Цитировать Сообщить модератору
 Re: встака binary string сломалась, дело в размере 32кб? фб не умеет? как победить?  [new]
Onax
Member

Откуда:
Сообщений: 19
ну офигеть теперь..
слава одину что хоть исходники открыты, получается надо фиксить и пересобирать EntityFramework.Firebird.dll
16 сен 17, 19:06    [20800915]     Ответить | Цитировать Сообщить модератору
 Re: встака binary string сломалась, дело в размере 32кб? фб не умеет? как победить?  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 208
Onax
ну офигеть теперь..
слава одину что хоть исходники открыты, получается надо фиксить и пересобирать EntityFramework.Firebird.dll


А прикинь что будет, когда счётчик за maxint перевалит... весь мир бардак, все бабы... кхм... а солнце, кхм, фонарь... Один я Дартаньян весь в белом.
16 сен 17, 20:18    [20800949]     Ответить | Цитировать Сообщить модератору
 Re: встака binary string сломалась, дело в размере 32кб? фб не умеет? как победить?  [new]
WildSery
Member

Откуда: да, оттуда.
Сообщений: 12827
Старый плюшевый мишка,

640 КБ памяти с избытком хватит любому компьютеру (ц)
18 сен 17, 09:12    [20802436]     Ответить | Цитировать Сообщить модератору
 Re: встака binary string сломалась, дело в размере 32кб? фб не умеет? как победить?  [new]
FastBaseDev
Member

Откуда: fastbase.net
Сообщений: 63
Dimitry Sibiryakov
Onax
нужны какие-нибудь идеи в чем проблема и что можно сделать, учитывая что весь sql
генерируется...

Да, размер литерала ограничен. Нет, с генерируемым SQL ничего сделать нельзя, надо
переходить на параметризованный.

Или передавать 0 в качестве длины sql-стейтмента в api (и заканчивать строку нулём): http://tracker.firebirdsql.org/browse/CORE-1117
И тогда можно >64K. Проверено.
18 сен 17, 10:16    [20802632]     Ответить | Цитировать Сообщить модератору
 Re: встака binary string сломалась, дело в размере 32кб? фб не умеет? как победить?  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 7287
FastBaseDev,

литералы строк для BLOB всё равно 64K ограничены. И это только в FB >= 3.0
18 сен 17, 10:20    [20802644]     Ответить | Цитировать Сообщить модератору
 Re: встака binary string сломалась, дело в размере 32кб? фб не умеет? как победить?  [new]
FastBaseDev
Member

Откуда: fastbase.net
Сообщений: 63
Симонов Денис
литералы строк для BLOB всё равно 64K ограничены.

Чем это удобно? Ведь даже базу в скрипт не выгрузить.
18 сен 17, 10:39    [20802704]     Ответить | Цитировать Сообщить модератору
 Re: встака binary string сломалась, дело в размере 32кб? фб не умеет? как победить?  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 7287
FastBaseDev,

я что-то говорил про удобство? Это архитектурное ограничение, которое чуток поднято в 3.0 (я про литералы).
Размер статментов поднят существенно. ЕМНИП - 10Мб.
18 сен 17, 10:42    [20802710]     Ответить | Цитировать Сообщить модератору
 Re: встака binary string сломалась, дело в размере 32кб? фб не умеет? как победить?  [new]
Onax
Member

Откуда:
Сообщений: 19
Про параметры-то я сразу подумал, вот только конкретно в этом единственно месте нельзя параметры использовать
Автор библиотеки не ошибся, а просто не запихнуть туда их..

Я наивно полагал что щас сделаю concat из мелких строк, но оказалось итоговый результат тоже не может вылезать за 32кб...
18 сен 17, 15:36    [20803824]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить