Delphi Can
'Abstract Error' - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6)
+--- Konu Başlığı: 'Abstract Error' (/showthread.php?tid=5799)



'Abstract Error' - info@guzelceker.com - 14-03-2021

  if Dm_Ayarlar.ADS_Departmanlar.RecordCount>0 then
  begin

 Form_Anasayfa.sTabControl_Departman.Tabs.Clear;
 Dm_Ayarlar.ADS_Departmanlar.First;
   while not Dm_Ayarlar.ADS_Departmanlar.Eof do
   begin
   Form_Anasayfa.sTabControl_Departman.Tabs.Add(Dm_Ayarlar.ADS_Departmanlar.FieldByName('DEPARTMAN').AsString);

     if not DirectoryExists(Dm_Ayarlar.ADS_Departmanlar.FieldByName('YOL').AsString) then
     begin
       Showmessage(Dm_Ayarlar.ADS_Departmanlar.FieldByName('DEPARTMAN').AsString+' Arşiv Sayfasının YOL u eşleşmiyor. Lütfen Hepsini Kontrol Edin');
     end else
     begin
       if Dm_Ayarlar.ADS_Departmanlar.FieldByName('ORIJINAL').AsBoolean then
       begin
          if not DirectoryExists(Dm_Ayarlar.ADS_Departmanlar.FieldByName('ORJYOL').AsString) then
          begin
          Showmessage(Dm_Ayarlar.ADS_Departmanlar.FieldByName('DEPARTMAN').AsString+' Arşiv Sayfasının ORJYOL u eşleşmiyor. Lütfen Hepsini Kontrol Edin');
          end;
       end;
     end;

   Dm_Ayarlar.ADS_Departmanlar.Next;
   end;
 end else
 begin
   Showmessage('Hiç Arşiv Sayfasınız Yok ayarlar Kısmından ayarlayınız');
 end;
 Dm_Ayarlar.ADS_Departmanlar.First;
 DepartmanFiltrele;

showmessage düştüğü zaman 'First chance exception at $7655A8B2. Exception class EAbstractError with message 'Abstract Error'. hatası alıyorum neden acaba


Cvp: 'Abstract Error' - delphiman - 26-02-2025

(14-03-2021, Saat: 12:44)info@guzelceker.com Adlı Kullanıcıdan Alıntı:
  if Dm_Ayarlar.ADS_Departmanlar.RecordCount>0 then
  begin

 Form_Anasayfa.sTabControl_Departman.Tabs.Clear;
 Dm_Ayarlar.ADS_Departmanlar.First;
   while not Dm_Ayarlar.ADS_Departmanlar.Eof do
   begin
   Form_Anasayfa.sTabControl_Departman.Tabs.Add(Dm_Ayarlar.ADS_Departmanlar.FieldByName('DEPARTMAN').AsString);

     if not DirectoryExists(Dm_Ayarlar.ADS_Departmanlar.FieldByName('YOL').AsString) then
     begin
       Showmessage(Dm_Ayarlar.ADS_Departmanlar.FieldByName('DEPARTMAN').AsString+' Arşiv Sayfasının YOL u eşleşmiyor. Lütfen Hepsini Kontrol Edin');
     end else
     begin
       if Dm_Ayarlar.ADS_Departmanlar.FieldByName('ORIJINAL').AsBoolean then
       begin
          if not DirectoryExists(Dm_Ayarlar.ADS_Departmanlar.FieldByName('ORJYOL').AsString) then
          begin
          Showmessage(Dm_Ayarlar.ADS_Departmanlar.FieldByName('DEPARTMAN').AsString+' Arşiv Sayfasının ORJYOL u eşleşmiyor. Lütfen Hepsini Kontrol Edin');
          end;
       end;
     end;

   Dm_Ayarlar.ADS_Departmanlar.Next;
   end;
 end else
 begin
   Showmessage('Hiç Arşiv Sayfasınız Yok ayarlar Kısmından ayarlayınız');
 end;
 Dm_Ayarlar.ADS_Departmanlar.First;
 DepartmanFiltrele;

showmessage düştüğü zaman 'First chance exception at $7655A8B2. Exception class EAbstractError with message 'Abstract Error'. hatası alıyorum neden acaba

Delphi'deki 'EAbstractError' istisnası genellikle alt sınıfta uygulanmamış soyut bir yöntemin çağrıldığını gösterir. Sizin durumunuzda, bu hata FieldByName yönteminin veri kümesinde var olmayan veya düzgün tanımlanmamış bir alana erişmeye çalışmasından kaynaklanabilir.

Bu sorunu gidermek için, FieldByName'de kullandığınız alan adlarının (yani, 'DEPARTMAN', 'YOL', 'ORIJINAL', 'ORJYOL') doğru yazıldığından ve veri kümesinde var olduğundan emin olun. Ayrıca, alanlarına erişmeden önce veri kümesinin düzgün bir şekilde doldurulup doldurulmadığını kontrol edin.

İşte kodunuzun eklenmiş kontrollerle rafine edilmiş bir sürümü:

if Dm_Ayarlar.ADS_Departmanlar.RecordCount > 0 then
begin
 Form_Anasayfa.sTabControl_Departman.Tabs.Clear;
 Dm_Ayarlar.ADS_Departmanlar.First;
 
 while not Dm_Ayarlar.ADS_Departmanlar.Eof do
 begin
   if Dm_Ayarlar.ADS_Departmanlar.FieldDefs.IndexOf('DEPARTMAN') <> -1 then
     Form_Anasayfa.sTabControl_Departman.Tabs.Add(Dm_Ayarlar.ADS_Departmanlar.FieldByName('DEPARTMAN').AsString);
   
   if not DirectoryExists(Dm_Ayarlar.ADS_Departmanlar.FieldByName('YOL').AsString) then
   begin
     ShowMessage(Dm_Ayarlar.ADS_Departmanlar.FieldByName('DEPARTMAN').AsString + ' Arşiv Sayfasının YOL u eşleşmiyor. Lütfen Hepsini Kontrol Edin');
   end
   else if Dm_Ayarlar.ADS_Departmanlar.FieldByName('ORIJINAL').AsBoolean then
   begin
     if not DirectoryExists(Dm_Ayarlar.ADS_Departmanlar.FieldByName('ORJYOL').AsString) then
     begin
       ShowMessage(Dm_Ayarlar.ADS_Departmanlar.FieldByName('DEPARTMAN').AsString + ' Arşiv Sayfasının ORJYOL u eşleşmiyor. Lütfen Hepsini Kontrol Edin');
     end;
   end;

   Dm_Ayarlar.ADS_Departmanlar.Next;
 end;
end
else
begin
 ShowMessage('Hiç Arşiv Sayfasınız Yok ayarlar Kısmından ayarlayınız');
end;

Dm_Ayarlar.ADS_Departmanlar.First;
DepartmanFiltrele;