Текущий архив: 2006.11.26;
Скачать: CL | DM;
Вниз
DOA Oracle не могу получить ошибку привызове процедуры. Найти похожие ветки
← →
ScoPal (2006-09-26 10:51) [0]При вызове процедуры, производящей update в таблице базы, не возвращается ошибка. Каким образом можно ее получить т.к. она точно есть, данные не обновились :(
← →
Бугага © (2006-09-26 10:58) [1]текст процедуры?
← →
evvcom © (2006-09-26 11:09) [2]> [0] ScoPal (26.09.06 10:51)
Необновление данных еще не факт того, что процедура отработала с ошибкой. Напишиupdate MyTable set Col1=null where 0=1
и ты никогда не получишь сообщение об ошибке (в случае присутствия соединения с БД и т.п.)
← →
ScoPal (2006-09-26 12:08) [3]procedure SmoothStripThickness(AHSId in Integer, NBP in Integer, CutWidth In Number)
Is
U TVector;
X TColMatrix;
JErr Integer;
kmaxl Integer;
hmaxl Number;
kmaxr Integer;
hmaxr Number;
h Number;
L Integer;
BulgeMax Number;
BulgePos Integer;
Bulge Number;
I1 Integer;
I2 Integer;
begin
-----
else
for J in 1 .. HScan.H.Cols loop
--insert into tmg_res t (t.hotstripid, t.scannumber, t.hmax, t.hmaxpos, t.bulgemax, t.bulgemaxpos, t.errcode, t.calcdate)
-- values
-- (HScan.HSId, HScan.ScanNo.W(J), HScan.HMaxVal.W(J), HScan.HMaxPos.W(J), HScan.HBulgeVal.W(J), HScan.HBulgePos.W(J), Null, sysdate);
update tmg_profilscan t
set t.hmaxpos = HScan.HMaxPos.W(J), t.bulgemax = HScan.HBulgeVal.W(J) where t.hotstripid = HScan.HSId and t.scannumber = HScan.ScanNo.W(J) ;
end loop;
end if;
-----
end SmoothStripThickness;
← →
Reindeer Moss Eater © (2006-09-26 13:12) [4]данные не обновились :(
<Цитата>
Если нет ошибки и данные не обновились то значит написано такое where, которому не удовлетворила ни одна запись.
← →
ScoPal (2006-09-26 15:07) [5]Нет ошибка не в этом... там сначала insert который отрабатывается и данные есть а потом сразу же вот эта процедура запускается и значение where точно выполняется, так как в insert вставляются значения для where.
← →
ANB © (2006-09-26 15:33) [6]
> ScoPal (26.09.06 15:07) [5]
Пройди отладчиком в девелопере/тоаде, поставь печать
dbms_output.put_line(sql%rowcount);
и разбери свою ошибку. Она явно логическая, раз нет исключения.
ЗЫ. Возьми за правило - прежде чем пихать что то в делфи, если не уверен - отлаживать в девелопере/тоаде.
← →
evvcom © (2006-09-26 16:03) [7]> [5] ScoPal (26.09.06 15:07)
> там сначала insert
> а потом сразу же вот эта процедура
А нафига insert и сразу update? В одном insert, что не судьба сделать?
← →
Reindeer Moss Eater © (2006-09-26 17:30) [8]Нет ошибка не в этом... там сначала insert который ...
... который закоментарен и данных там никаких нет.
← →
Reindeer Moss Eater © (2006-09-26 17:33) [9]Либо данных нет и поэтому ничего не обновилось.
Либо данные есть и они обновились. Но ты не видишь изменений потому что ищешь их в другой транзакции которая их пока не видит.
Чудес не бывает.
← →
Бугага © (2006-09-27 03:11) [10]> for J in 1 .. HScan.H.Cols loop
> --insert into tmg_res t (t.hotstripid, t.scannumber,
> t.hmax, t.hmaxpos, t.bulgemax, t.bulgemaxpos, t.errcode,
> t.calcdate)
> -- values
> -- (HScan.HSId, HScan.ScanNo.W(J), HScan.HMaxVal.W(J)
> , HScan.HMaxPos.W(J), HScan.HBulgeVal.W(J), HScan.HBulgePos.W(J)
> , Null, sysdate);
> update tmg_profilscan t
> set t.hmaxpos = HScan.HMaxPos.W(J), t.bulgemax
> = HScan.HBulgeVal.W(J) where t.hotstripid = HScan.HSId and
> t.scannumber = HScan.ScanNo.W(J) ;
> end loop;
> end if;
А что возвращает запрос с выделенным WHERE?
Страницы: 1 вся ветка
Текущий архив: 2006.11.26;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.068 c