Страница 5 из 5
Re: 8.1 вылетает по рантайму (оракл)
Добавлено: 09 ноя 2016, 20:28
edward_K
А вот вопрос.То, что вы привели с ora90drv , похоже на кусок который выполняется при каждом переходе между модулями для чистки "зависших" зверей.
То , что это попало в ошибку - это уже следствие наверное.
По порядку
1. В галактику зашли?
2. Запустили отчет. В логах в cminit в первой строке что то появляется? Если нет, то у вас скорей всего косяк в логической табле, если да - это уже проще. Внимательно следите за временем, в лог вывод добавьте.
Re: 8.1 вылетает по рантайму (оракл)
Добавлено: 10 ноя 2016, 00:22
maikl
Ошибка некорректного дескриптора часто происходит из за конфигурационных файлов (если сами конфигурировали интерфейсы).
Re: 8.1 вылетает по рантайму (оракл)
Добавлено: 10 ноя 2016, 09:50
edward_K
Кстати. Ошибка при загрузке фейса со временными таблицами может быть еще вызвана наличием глобальной времянки с другой структурой(в том числе и в других ресурсах) , чем та, что используется в фейсе при компиляции. Попробуйте переименовать времянку.
Re: 8.1 вылетает по рантайму (оракл)
Добавлено: 10 ноя 2016, 11:02
savov
Ошибка где то в логической.
Исправил сейчас так
Код: Выделить всё
.create View TKatalog as select * from tblSapIM, tMain;
....
stmt:=0;
stmt := sqlAllocStmt;
sqlAddStr(StmtString,' SELECT t2.tNsap, t2.tViddv, t2.tzavod, t2.tsklad, t2.tparty, t2.tksap, t2.tbarkod, t2.td56, t2.ted, ');
sqlAddStr(StmtString,' Sum(tkol) FROM ( SELECT tbOracleData.tNsap tNsap, tbOracleData.tviddv tviddv, tbOracleData.tzavod tzavod, ');
sqlAddStr(StmtString,' tbOracleData.tsklad tsklad, tbOracleData.tparty tparty, tbOracleData.tksap tksap, tbOracleData.tbarkod tbarkod, ');
sqlAddStr(StmtString,' tbOracleData.td56 td56, tbOracleData.ted ted, tbOracleData.tkol tkol FROM tbOracleData ');
sqlAddStr(StmtString,' ) t2 group by t2.tNsap, t2.tVidDv, t2.tzavod, t2.tsklad, t2.tparty, t2.tksap, t2.tbarkod, t2.td56, t2.ted order by t2.tNsap');
sqlPrepare ( stmt, StmtString );
sqlExecute ( stmt );
sqlFetchInto(stmt, TableByField(FieldNum(Tkatalog.tmain.tNSAP))); // вот здесь теперь вылет по 213 - выход коллекции за пределы!
sqlFreeStmt(stmt);
Вылет теперь по 213 ошибке, причем до помеченной строки все работает, во временную таблицу оракла все входит, но вот выгрузка вылетает. Предполагаю неверно описание в помеченной строке результирующей таблицы. Пробовал разными методами, но не прокатывает (например, sqlFetchInto(stmt, Tkatalog.tntmain);). Что не так описано ?
Re: 8.1 вылетает по рантайму (оракл)
Добавлено: 10 ноя 2016, 11:10
Den
Дак это код fcom похоже.
Re: 8.1 вылетает по рантайму (оракл)
Добавлено: 10 ноя 2016, 11:19
edward_K
угу. Пробуем sqlFetchInto(stmt,TKatalog.tnTMain), но не факт, что прокатит, да и работу DSQL в Fcom никто не гарантировал, в силу старости последнего. Есть еще несколько возможностей получения данных запроса, но они медленнее на порядок.
Re: 8.1 вылетает по рантайму (оракл)
Добавлено: 10 ноя 2016, 11:27
savov
пробовал такое, не прокатывает
Re: 8.1 вылетает по рантайму (оракл)
Добавлено: 10 ноя 2016, 12:13
savov
edward_k, прокатила версия с переименованием логической таблицы. НЕ времянки, а именно логической таблы. Почему это получилось, не знаю. Такая же логическая таблица объявлялась в другом ресурсе.
Код
Код: Выделить всё
.create View TKatalog as select * from tblSapIM;
.Create view tMC as Select katmc.barkod, katmc.name from katmc
where((FMC==katmc.name));
.create View TVMain_IM as select * from Tmain;
...
stmt := sqlAllocStmt;
sqlAddStr(StmtString,' SELECT t2.tNsap, t2.tViddv, t2.tzavod, t2.tsklad, t2.tparty, t2.tksap, t2.tbarkod, t2.td56, t2.ted, ');
sqlAddStr(StmtString,' Sum(tkol) FROM ( SELECT tbOracleData.tNsap tNsap, tbOracleData.tviddv tviddv, tbOracleData.tzavod tzavod, ');
sqlAddStr(StmtString,' tbOracleData.tsklad tsklad, tbOracleData.tparty tparty, tbOracleData.tksap tksap, tbOracleData.tbarkod tbarkod, ');
sqlAddStr(StmtString,' tbOracleData.td56 td56, tbOracleData.ted ted, tbOracleData.tkol tkol FROM tbOracleData ');
sqlAddStr(StmtString,' ) t2 group by t2.tNsap, t2.tVidDv, t2.tzavod, t2.tsklad, t2.tparty, t2.tksap, t2.tbarkod, t2.td56, t2.ted order by t2.tNsap');
sqlPrepare ( stmt, StmtString );
sqlExecute ( stmt );
sqlFetchInto(stmt, tntmain);
т.е. пришлось разбить на два View и в таком виде работает.
Re: 8.1 вылетает по рантайму (оракл)
Добавлено: 10 ноя 2016, 12:28
edward_K
У вас в логе компиляции наверняка сообщение, что tmain куда то добавлена. Видимо sqlfetch не могет понять имя вьюхи.
Re: 8.1 вылетает по рантайму (оракл)
Добавлено: 18 ноя 2016, 15:59
savov
Хм... поторопился я с оптимистичными выводами... Ошибка через некоторое время повторилась! Все с теми же признаками, перекомпиляция и новое переименование таблиц не помогает.Чертовщина какая-то