Clarion - SQLite

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
pansoft
Бывалый
Сообщения: 76
Зарегистрирован: 08 Август 2011, 11:37

Clarion - SQLite

Сообщение pansoft »

Добрый день!
Приложение на С10 база SQLite 3.
Вот такой код. Переносит данные из MSSQL в SQLite для дальнейшей отправки на сайт.

В результате выполнения происходит стремительное увеличение памяти выделенной под приложение.
Размер выгруженного файла 24 м, а память увеличивается на 240.
В общем DISPOSE(STT_) не срабатывает.
Экспорт запускается по расписанию каждые 3 часа. К вечеру память составляет 2G.
Может кто сталкивался.

Код: Выделить всё

Stt_&=NEW(File)
Stt_{PROP:Driver}='MSSQL'
Stt_{PROP:Owner}=GLO:ConnectionString
UnfixFormat(STT_)
STT_{PROP:SQL}='CALL spWebExport(8)'
FixFormat(Stt_)
if ERRORCODE()
    AmountErr=FILEERRORCODE()
    ThisWindow.AddMes(FILEERROR()&' FIX',2,1)
    UnfixFormat(STT_)
    DISPOSE(STT_)
    return AmountErr
END
WebPresence{PROP:SQL}='pragma journal_mode=off;'
WebPresence{PROP:Logout}=1
I=0
LOOP
    NEXT(Stt_)
    if errorcode() THEN
        break
    END
    I+=1
    AGroup&=Stt_{prop:Record}
    WPS:ItemId=WHAT(AGroup,1)
    WPS:StoreId=WHAT(AGroup,2)
    WPS:InStock=WHAT(AGroup,3)
    WPS:PriceWVat=WHAT(AGroup,4)
    WPS:ItemAmount=WHAT(AGroup,5)
    IF Access:WebPresence.TryInsert()<>Level:Benign
        I-=1
        BREAK
    END
END
CLOSE(Stt_)
COMMIT
!WebCatalog{PROP:SQL}='COMMIT;'
ThisWindow.AddMes('Наличие '&I,0,1)
UnfixFormat(STT_)
DISPOSE(STT_)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Clarion - SQLite

Сообщение Yufil »

Хмм... первый раз вижу полностью динамически создаваемый файл, без текущей записи и полей. А так можно? Скорее всего, и Кларион считает, что нельзя...
pansoft
Бывалый
Сообщения: 76
Зарегистрирован: 08 Август 2011, 11:37

Clarion - SQLite

Сообщение pansoft »

В других приложениях работает без проблем.
Больше грешу на SQLite.
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Clarion - SQLite

Сообщение Admin »

Yufil писал(а): 28 Июнь 2017, 10:31Скорее всего, и Кларион считает, что нельзя...
Но должно же работать если компилируется :)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Clarion - SQLite

Сообщение Admin »

pansoft писал(а): 28 Июнь 2017, 10:10WPS:ItemId=WHAT(AGroup,1)
странный WHAT без &=
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Clarion - SQLite

Сообщение Admin »

Хотя нашел у SV одно место

Код: Выделить всё

                 LOC:ANYField &= WHAT(SELF.FieldsGroup, LOC:IndexG)
                 LOC:ANYField = WHAT(LOC:Group, parKey{PROP:Field,LOC:IndexK})
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Clarion - SQLite

Сообщение Дед Пахом »

Народ первый раз увидел DFD :idied:
С уважением, ДП
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Clarion - SQLite

Сообщение Yufil »

Admin писал(а): 28 Июнь 2017, 10:49
Yufil писал(а): 28 Июнь 2017, 10:31Скорее всего, и Кларион считает, что нельзя...
Но должно же работать если компилируется :)
Можно откомпилировать замечательную программу

Код: Выделить всё

X   &LONG 
     CODE
     X=0 
Компилируется с полпинка. И должна работать...
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Clarion - SQLite

Сообщение Yufil »

Может быть, по концу работы просто рестартовать программу. Есть у меня такие, как раз связанные с переносом данных, никаких особых фокусов нет, а память течёт...

Код: Выделить всё

RUN( Command(0) )
HALT
pansoft
Бывалый
Сообщения: 76
Зарегистрирован: 08 Август 2011, 11:37

Clarion - SQLite

Сообщение pansoft »

Перезапускали раз в сутки. Но база выросла и теперь "раз в сутки" стало не хватать.
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Clarion - SQLite

Сообщение Yufil »

Закончили экспортировать - срабатывает команда на перезапуск, снова экспортировали - опять перезапускаем на автомате. Или пускать через планировщик
pansoft
Бывалый
Сообщения: 76
Зарегистрирован: 08 Август 2011, 11:37

Clarion - SQLite

Сообщение pansoft »

Yufil писал(а): 28 Июнь 2017, 13:54Или пускать через планировщик
Так и делаем.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Clarion - SQLite

Сообщение finsoftrz »

Я всегда такие вещи через планировщик делаю, запуская программу с ключиками. Планировщик виндовый или встроенный. В последнем случае программа запускает экземпляр себя же...
C6/C11, ШВС, tps/btrieve.
Ответить