У меня есть таблица, в которой хранятся страницы учебников. , работая над приложением и закончив добавлять книгу, я обнаружил, что таблица была более 200 МБ, однако PDF-файл, содержащий страницы, был всего 70 МБ 438 страниц.Необходимо изменить сжатие изображений, хранящихся в базе данных SQLite с помощью XOJO, но получить ошибку во время процесса
Проблема в том, что она сохраняет изображения в качестве максимального качества. теперь я хочу, чтобы сценарий, который проходит через каждую запись, открывает изображения и сохраняет его снова как среднее сжатие.
Я сделал набор записей и цикл, чтобы пройти через каждую запись, чтобы изменить сжатие, но приложение падает на полпути процесса.
Независимо от того, как я меняю код, он всегда сбой.
Итак, я принял другой подход и сделал цикл из 200 записей. Это хорошо, но он не изменил размер файла базы данных ???
Ошибка выполнения является UnsupportedOperationException
, как показано здесь:
Это код:
dim rs as RecordSet
rs=lego.LegoData.SQLSelect("SELECT * FROM Books")
dim resize as Picture
while not rs.EOF
resize = picture.FromData(rs.Field("intructions").StringValue)
rs.Edit
rs.Field("intructions").StringValue = resize.GetData(Picture.FormatJPEG, Picture.QualityMedium)
rs.Update
rs.MoveNext
wend
Как-то читает NIL
после 200 записей, но это не NIL
. Ошибка не происходит каждый раз на той же записи, у нее есть своя воля?
Любые предложения? Я хочу встроить функцию сжатия изображений в книгах, чтобы люди могли сделать меньшее руководство для экспорта.
Я добавил LIMIT в sql, чтобы сделать всего 200 строк, и изменил его вручную, чтобы пройти через всю таблицу в 800 строк. Теперь моя база данных меньше, и на данный момент это было непростым решением.нет ошибки, поэтому это означает, что это не потому, что поврежденные данные – Berry
Возможно, Xojo здесь имеет утечку памяти. Я предлагаю вам обратиться за помощью в Xojo Forum. Это неправильное место для выяснения ошибок. –