Подскажите, пожалуста, почему галактика вылетает при запуске моего ARD-отчёта?
Он компилируется нормально, несколько секунд работает, а потом ...
Сообщение "Прекращена работа программы ядро 2-х уровневого атлантис-приложения"
Прям дурдом какой-то.
Вылетает галактика
Модераторы: m0p3e, edward_K, Модераторы
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Вылетает галактика
logstrtofile вам в помощь.
сначала редко, потом на выявленном куске чаще.
Вылетает молча? причин много есть - без кода и локализации куска в нем тяжко предположить.
Может вылетать на криво построенном запросе или попытке вставки с использованием полей массивов или данных с другой view.
сначала редко, потом на выявленном куске чаще.
Вылетает молча? причин много есть - без кода и локализации куска в нем тяжко предположить.
Может вылетать на криво построенном запросе или попытке вставки с использованием полей массивов или данных с другой view.
Re: Вылетает галактика
Вылетает всегда в разных местах, как будто от фонаря.edward_K писал(а):logstrtofile вам в помощь.
сначала редко, потом на выявленном куске чаще.
Вылетает молча? причин много есть - без кода и локализации куска в нем тяжко предположить.
Может вылетать на криво построенном запросе или попытке вставки с использованием полей массивов или данных с другой view.
Код: Выделить всё
stmt:=sqlAllocStmt;
sqlAddStr(query,'insert into schfact (direct,tipuser,subtip,dfact,dpost,num,corg,csoprhoz,sum[2],sum[3],summa,summareg) values ');
sqlAddStr(query,'(1,7218,16,#date(31,12,2013),#date(31,12,2013),'#39+String(i-1)+''#39);
sqlAddStr(query,',#comp('+zap1[1]+'),#comp('+zap2[1]+'),');
xlGetCellValue(i,4,yach);
if trim(yach)=''
then { xlGetCellValue(i,5,yach);
yach:='-'+yach };
sqlAddStr(query,Replace(yach,',','.')+','+zap2[2]+','+zap2[2]+','+zap2[2]+')');
k_osh:=sqlPrepare(stmt,query);
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Вылетает галактика
Скорей всего вы не следите за инициализацией или освобождением хендлов.
как то так
и так
Еще в эти функции лучше передавать готовую строку.
И все так logstrtofile вам покажет в какой именно момент вы вылетаете. Вроде именно это приводит к случайным вылетам в момент инициализации.
как то так
Код: Выделить всё
//******************************************************************************
Procedure ClearQuery(var liHandle : longint);
{
if (liHandle <> 0)
{
sqlFreeStr(liHandle);
liHandle := 0;
}
}
Код: Выделить всё
sqlFreeStmt(stmt);
ClearQuery(vliSQLCommand);
И все так logstrtofile вам покажет в какой именно момент вы вылетаете. Вроде именно это приводит к случайным вылетам в момент инициализации.
Re: Вылетает галактика
Спасибо !!!
sqlFreeStmt у меня было, а := 0 не было.
Теперь перестала вылетать!
sqlFreeStmt у меня было, а := 0 не было.
Теперь перестала вылетать!