'Lock file has grown too large' hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ayhanarican
Üye
Mesajlar: 37
Kayıt: 03 Tem 2003 01:24
Konum: İzmir
İletişim:

'Lock file has grown too large' hatası

Mesaj gönderen ayhanarican »

Paradox veritabanımda iki tablo var ;

Kod: Tümünü seç

StokKart
---------
ID
StokAd
UyarGun

Tarihler
--------
ID
RefID
Tarih
StokKart.ID Tarihler.RefID ye Master detay bağlı (TTable)

kayıt girişinde table kullanıyorum. her şey normal.
Fakat Raporlarda (QReport) Query kullanıyorum ve son kullanma tarihi yaklaşanlar raporunu almak istediğimde ;

"Lock file has grown too large" hatasını veriyor. Daha önce hata vermiyordu. kodlar hiç değişmediği halde sonradan bu hatayı vermeye başladı. Raporda ise bütün kayıtları getiriyor.

rapor al dediğimde şu kodlar çalışıyor :

Kod: Tümünü seç

  With Data.qryYaklasan Do
  Begin
    Active:=False;
    SQL.Clear;
    SQL.Add('SELECT Stokkart.ID, Stokkart.StokAd, Stokkart.UyarGun, Tarihler.Tarih');
    SQL.Add('FROM "StokKart.db" Stokkart');
    SQL.Add('   INNER JOIN "Tarihler.db" Tarihler');
    SQL.Add('   ON  (Stokkart.ID = Tarihler.RefID)');
    SQL.Add('WHERE  (Tarihler.Tarih > '+#39+DateToStr(Date)+#39+')');
    SQL.Add('ORDER BY Stokkart.ID,Tarihler.Tarih');
    Active:=True;
    Filtered:=True;
    First;
    While Not Eof Do
    Begin
      Next;
    End;
    First;
  End;
  frmQrYaklasan.QRLabelTitle.Caption:='Son Kullanma Tarihi Yaklaşan Ürünler ('+DateToStr(Date)+' '+TimeToStr(Time)+')';
  frmQrYaklasan.Qr.OnPreview:=frmPreview.CustomPreview;
  frmPreview.QrPreview.ZoomToWidth;
  frmPreview.QrPreview.Update;
  frmQrYaklasan.Qr.Preview;
qryYaklasan OnFilter Record olayındada

if Trim(DataSet.FieldByName('ID').AsString)<>'' Then
Accept:=Data.TarihiYaklasan(DataSet.FieldByName('ID').AsString)

burada TarihiYaklasan boolean foknksiyonunun kodu ise ;

Kod: Tümünü seç

function TData.TarihiYaklasan(ID:String) : Boolean;
var
  Sonuc : Boolean;
Begin
  With Query Do
  Begin
    Active:=False;
    DatabaseName:=DbName;
    SQL.Clear;
    SQL.Add('SELECT Stokkart.ID, Stokkart.StokAd, Stokkart.UyarGun, Tarihler.Tarih');
    SQL.Add('FROM "StokKart.db" Stokkart');
    SQL.Add('   INNER JOIN "Tarihler.db" Tarihler');
    SQL.Add('   ON  (Stokkart.ID = Tarihler.RefID)');
    SQL.Add('WHERE  (ID='+ID+') AND (Tarihler.Tarih) > '+#39+DateToStr(Date)+#39);
    SQL.Add('ORDER BY Stokkart.ID,Tarihler.Tarih');
    Active:=True;
    Sonuc:=False;
    While Not Eof Do
    Begin
      if FieldByName('Tarih').Text<>'' Then
      Sonuc:=(FieldByName('Tarih').Value-FieldByName('UyarGun').Value) <= Date;
      if Sonuc Then Break;
      Next;
    End;
    Result:=Sonuc;
    Active:=False;
  End;
End;
Nerde hata yapıyorum?
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
ayhanarican yazdı:Nerde hata yapıyorum?
ayhanarican yazdı:Paradox veritabanı
anladığım kadarıyla lock tablosu biraz fazla büyümüş.
kodlarda bir değişiklik yapmadan bu hatayı vermeye başladıysa
c sürücüsünün ana dizininde lck uzantılı bir dosya var. onu silip bi dene.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
ayhanarican
Üye
Mesajlar: 37
Kayıt: 03 Tem 2003 01:24
Konum: İzmir
İletişim:

Mesaj gönderen ayhanarican »

Teşekkürler sorun çözüldü.
Cevapla