1

Konu: hata kayıt programı

İyi günler,
Aşağıdaki şekilde bir hata kayıt programı kullanıyorum, ancak istediğim verimlilikte değil.
Hata bir döngü içerisinde oluşuyorsa aynı hatayı döngü sayısı kadar kaydediyor.
Kontrol için aynı hata kodu ve aynı dakika içerisinde diye bir kontrol koydum, ama tam olarak yeterli değil diye düşünüyorum.

SORU:
Herhangi bir noktada hata oluşunca hata kaydını yapsın ve geri döndüğünde o program segmentini kesip üst program seviyesinde dursun.
Eskiden ON ERROR RETURN komutu ile çalışıyordu, ancak hata kaydı yapılmıyordu.
RETURN TO ...?.. diye birşey arıyorum

sevgiler ve teşekkürler
Ali

------------------
PROCEDURE hatayaz_dbf

PARA XSatir,XProgad,XMesaj1
LOCAL Xsonalias,Xdiğer,XdateTime
WAIT "hata kaydı" NOWAIT TIMEOUT 3 WIND
=AERROR(hatamat)
ON ERROR
Xdiğer=''

IF VARTYPE(XProgAd)='C'
  Xdiğer=Xdiğer+"Program Yeri: "+XProgAd+CHR(13)
ENDI

IF VARTYPE(XSatir)='N'
  Xdiğer=Xdiğer+"satır: "+STR(Xsatir)+CHR(13)
ENDI

IF VARTYPE(XMesaj1)='C'
  Xdiğer=Xdiğer+"KOMUT:"+XMesaj1+CHR(13)
ELSE
  XMesaj1="?"
ENDI

FOR n = 1 TO 7         && matriksin bütün elemanları
  DO CASE
  CASE ISNULL(hatamat[1,n])
  CASE TYPE("hatamat[1,n]")="C"
    Xdiğer=Xdiğer+STR(n,1,0)+': '+hatamat[1,n]+CHR(13)
  CASE TYPE("hatamat[1,n]")="N"
    Xdiğer=Xdiğer+STR(n,1,0)+': '+STR(hatamat[1,n])+CHR(13)
  OTHE
  ENDC
ENDF

hatamat[1,1]=IIF(VARTYPE(hatamat[1,1])="N",hatamat[1,1],0)
XsonAlias=ALIAS()

SELE 0 
USE (SYS(5)+SYS(2003)+'\irsdata\irsdata1\hatalar') AGAIN
XdateTime=DATETIME()
GO BOTT  && son kayda git
IF ! hatalar.hatano=hatamat[1,1] AND ! MINUTE(XdateTime)=MINUTE(hatalar.tarih)
  *hatalar.dbf(bizid I, tarih Datetime 8, kod C(30), diğer M, hatano N(10), silen I)
   INSERT INTO hatalar VALUES (VAL(Fon.P[2].YetkiListe.Value),XdateTime,XMesaj1,Xdiğer,hatamat[1,1],0)
ENDI
USE

IF !ISBL(XsonAlias)
   SELE (XsonAlias)
ENDI

ON ERROR DO hatayaz_dbf WITH LINENO(),PROGRAM(),MESSAGE(1)

retu

VFP9 SP2