Ошибка на функции STRTOFIE() | |
---|---|
lili Автор Сообщений: 436 Откуда: Сыктывкар Дата регистрации: 07.11.2005 |
Приветствую всех!
В БД на СКЛ-сервере хранятся файлы в таблице в поле типа varbinary(max). Вытаскиваю файл через Курсор-адаптер в поле типа Blob. Затем STRTOFILE(...) - и файл сформирован. До сих пор эта схема работала, но сегодня на STRTOFILE вышла ошибка String is too long to fit. Длина поля и правда не маленькая - 30М. Но я нигде не нашла про какие-либо ограничения. Что не так? |
Re: Ошибка на функции STRTOFIE() | |
---|---|
Chemberzhy Сообщений: 13142 Откуда: Измаил Дата регистрации: 28.04.2009 |
Про ограничения в Хелпе нет ничего, но ошибка возникает периодически, помню такое было. Насколько помню, напрямую связано с объемом выделенной памяти для приложения системой.
------------------ Что-то с памятью моей стало, всё что было не со мной- помню. |
Re: Ошибка на функции STRTOFIE() | |
---|---|
lili Автор Сообщений: 436 Откуда: Сыктывкар Дата регистрации: 07.11.2005 |
и что, можно этот объем памяти как-то регулировать?
Исправлено 1 раз(а). Последнее : lili, 19.07.18 15:25 |
Re: Ошибка на функции STRTOFIE() | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
Ограничения на выражения со строками есть, например, такие:
Limited by available memory Maximum # of characters per character string or memory variable = 16,777,184 Maximum # of characters per command line = 8,192 Maximum # of characters per macro substituted line = 8,192 Maximum length of a string literal = 255 А что у вас написано буквально в качестве первого параметра? Имя поля? Тогда наиболее вероятно, что ограничивает "available memory". |
Re: Ошибка на функции STRTOFIE() | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
было как-то обсуждение forum.foxclub.ru
|
Re: Ошибка на функции STRTOFIE() | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Предельный документированный размер строковой переменной (и "строкового значения", хотя это не совсем точно передаёт суть дела) чуть менее 16Мб. Иногда (в частности при чтении файлов с диска при помощи FILETOSTR) в переменной можно получить и более длинные строковые значения - правда при работе с такой переменной будут ломаться многие строковые функции - именно с ошибкой "String is too long to fit (Error 1903)". Очевидно при попытке использовать STRTOFILE для мемо/блоб-поля как раз и происходит такая ситуация. Для выгрузки данных из мемо-полей в файлы на диске существует специальная команда COPY MEMO. Хотя в хелпе это и не отмечено, но она же работает и для блоб-полей, равно как и APPEND MEMO - что позволяет загрузить в мемо/блоб-поле файлы которые просто не поместятся в памяти, и вызовут ошибку "There is not enough memory to complete this operation (Error 43)" если попытаться записать их, к примеру, через REPLACE memofld WITH FILETOSTR("big_movie.avi"). Обычно при свободной памяти фокс справляется через FILETOSTR с файлами размером в несколько сот мегабайт. APPEND MEMO справится с файлом размером чуть менее 2Гб (собственно говоря это предел для размера fpt файла, а не для конкретно этой команды) для новой/пустой таблицы/курсора. ------------------ WBR, Igor |
Re: Ошибка на функции STRTOFIE() | |
---|---|
lili Автор Сообщений: 436 Откуда: Сыктывкар Дата регистрации: 07.11.2005 |
Igor Korolyov, спасибо за ценную (как всегда) информацию. Все получилось.
|
© 2000-2024 Fox Club  |