index out of date sorunu ile ilgili

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
Query
Üye
Mesajlar: 363
Kayıt: 29 Ara 2003 05:13

index out of date sorunu ile ilgili

Mesaj gönderen Query »

Arkadaşlar slm;

Kod: Tümünü seç

  Table.Close;
  Table.Exclusive := True;
  Table.Open;
  DbiRegenIndexes(Table.Handle);
  Table.Close;
yukarıdaki kodlarla paradox daki index out of date sorununu halledebiliyoruz.

Bu kodu programın açılışında tüm db ler için (bozuk olsun yada olmasın)kullanmam sorun yaratır mı? Her açılışta olacağı için açılış sorunları yaşarmıyım?

Çünkü bu tarz sorunları benim halletmem kolay ama programı kullanan ve delphi bilgisi olmayan biri bu sorunu çözemeyecektir.

Hepinize iyi çalışmalar dilerim.
ASE
Kıdemli Üye
Mesajlar: 518
Kayıt: 28 Ağu 2003 03:17
Konum: samsun
İletişim:

Mesaj gönderen ASE »

Bu kodları programın her açılışında çalıştırmak programın açılışını zorlaştıracaktır. Birde kayıt sayısının 10 binleri bulduğunu düşünürsek bu sıkıcı olur kullanıcı için. burada veri tabanı onarma gibi bir seçenek kullanarak buton altında kullanıcıya istediği zaman yaptırın.
Kolay gelsin
Allah'ım!...
Yol boyunca bırakma elimi...
Düşerim sonra...


ASE YAZILIM
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

en iyisi sen try except arasına al table.open i
hata olursa duzeltme kodu calısır.
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

gkimirti yazdı:en iyisi sen try except arasına al table.open i
hata olursa duzeltme kodu calısır.
bende bu şekilde yapıyorum, program açılışta tüm tablolara sırayla bir veri post ediyorum eğer exception oluşursa(hataya göre); o tabloyu pack edip tekrar test ediyorum.
Kullanıcı avatarı
Query
Üye
Mesajlar: 363
Kayıt: 29 Ara 2003 05:13

Mesaj gönderen Query »

gkimirti yazdı:en iyisi sen try except arasına al table.open i
hata olursa duzeltme kodu calısır.
gkimirti bu çok daha mantıklı.
Hepinize teşekkür ederim. :roll:
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

mege nin yaptıgı sekilde extra bir post edip denemek te gerek
tablo acılsada kayıt degistirme gibi seylere izin vermiyor bazen bu paradox
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

MS-DOS ortamında yazılan bir çok programda çok sık kullanılan bir yöntem vardı; "Dosyaları/İndeksleri Onar" diye. Sen de programın bir yerinde böyle bir seçenek koyarsan, hem senin için hem de kullanıcı için daha iyi olur. Ayrıca programda zip leyip yedekleme yapabilecek bir tool eklemende fayda var.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
Query
Üye
Mesajlar: 363
Kayıt: 29 Ara 2003 05:13

Mesaj gönderen Query »

Yedeklemeyi zaten yaptırıyorum orda bi sorun yok. Ben istiyorum ki bu tarz sorunlarla kullanıcı uğraşmasın(paradoxda çok şey istiyor olabilirim ama :oops: ) program hatasız 8) çalışsın.

Zaten menüye db onar diye bi satır ekledim. Kullanıcı istediği zaman yapabiliyor. Ama bazen bu tarz hatalardan program açılmıyor. Program açılmadığı için kontrol etme gereği duyuyorum. Acil durumlarda kullanabileceği onar.exe diye bi programcıkda var.

Kullanıcı uğraşmasın istiyorum yani kısacası ...
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

haklısın en dogrusunu yapıyorsun
diger turlu bir cok problemler cıkıyor.
en basitinden a personeli gidiyor ve b geliyor yerine ne yapacagını bilmiyor
sana hatayı anlatana kadar sabah oluyor:)
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

eğer programında defaultr olarak tüm active'leri (tablo,query falan filan) false yaparsan programın çalışır.
ana bir DBCheckup işleminden sonra bunları true dersin.
ben öyle yaptım :D
Cevapla