Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Elektrik Kesintisinde Veri Kaybı
#11
(02-04-2021, Saat: 18:21)esistem Adlı Kullanıcıdan Alıntı: Elektrik kesintisi anında veritabanınında açık transaction bırakmıyorsanız verilerinizin bozulması oldukça zordur, fakat bozulursa bu sefer kurtarması büyük problem olur.

Burada önemli olan transaction başlatılıp hemen bitirilmeli ve commit veya commitretaining ile diske yazılması sağlanmalıdır.

Bunun haricinde mirror kullanabilirsiniz. (Bu işlem, yazmayı (insert işlemini) biraz yavaşlatır)

En önemlisi server olarak kullandığınız cihaza ufak bir güç kaynağı koyun ve transactionlar hakkında yazdıklarımı mutlaka uygulayın.

Commitretaining işe yaradı gibi. Biraz kullanalım bakalım.
Cevapla
#12
Query nesnesinin onpost olayina transaction.autocommit i yazmayi denermisiniz?
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#13
Arkadaşlar veri tabanına kaydetme, silme, güncelleme gibi işlemleri IBQuery ile yapıyorum. İki farklı yol denedim.

1.yol olumlu : Her defasında veri tabanına kaydetme, silme, güncelleme kodlarından hemen sonra " IBTransaction1.CommitRetaining " yazdım. Sonuç olumlu. Elektrik kesilse de kayıt yapılmış oluyor. Hazırladığım program küçük olduğu için bu yöntemin performansı etkileyip etkilemediğini fark edemedim.

2.yol olumsuz : " IBTransaction1.CommitRetaining " ifadesini tüm IBQuery 'lerin afterpost, afterdelete ve afteredit olaylarına yazdım. Bu yöntem çalışmadı. Elektrik kesilince veri kaybı yaşanıyor.
Cevapla
#14
Hocam 1 ve 2 aynı yol değil mi?
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#15
Aynı değil. Birinci yolda program içerisinde kaydetme, silme, güncelleme gibi her işlemden sonra bu ifadeyi yazdım. Örnek olarak kişi kaydetme için aşağıdaki şekilde kod yazdım.

   with DataModule1.IBQ_Kisiler do
     begin
        Database := DataModule1.IBDatabase1 ;
        SQL.Clear ;
        Sql.Add('Insert Into TBL_KISILER(TCNO,ADI_SOYADI,BABA_ADI,TELEFON)');
        Sql.Add('Values(: PTCNO,: PADI_SOYADI,: PBABA_ADI,: PTELEFON)');
        ParamByName('PTCNO').AsString := TCNO.Text ;
        ParamByName('PADI_SOYADI').AsString := Adi_Soyadi.Text ;
        ParamByName('PBABA_ADI').AsString := Baba_Adi.Text ;
        ParamByName('PTELEFON').AsString := Telefon.Text ;
        Prepare ;
        ExecSQL ;
        DataModule1.IBTransaction1.CommitRetaining ;
     end;


İkinci yolda ise sadece  "DataModule1. IBTransaction1.CommitRetaining " ifadesini tüm IBQuery 'lerin afterpost, afterdelete ve afteredit olaylarına yazdım.
Cevapla
#16
(03-04-2021, Saat: 18:24)sunbeki Adlı Kullanıcıdan Alıntı: Aynı değil. Birinci yolda program içerisinde kaydetme, silme, güncelleme gibi her işlemden sonra bu ifadeyi yazdım. Örnek olarak kişi kaydetme için aşağıdaki şekilde kod yazdım.

   with DataModule1.IBQ_Kisiler do
     begin
        Database := DataModule1.IBDatabase1 ;
        SQL.Clear ;
        Sql.Add('Insert Into TBL_KISILER(TCNO,ADI_SOYADI,BABA_ADI,TELEFON)');
        Sql.Add('Values(: PTCNO,: PADI_SOYADI,: PBABA_ADI,: PTELEFON)');
        ParamByName('PTCNO').AsString := TCNO.Text ;
        ParamByName('PADI_SOYADI').AsString := Adi_Soyadi.Text ;
        ParamByName('PBABA_ADI').AsString := Baba_Adi.Text ;
        ParamByName('PTELEFON').AsString := Telefon.Text ;
        Prepare ;
        ExecSQL ;
        DataModule1.IBTransaction1.CommitRetaining ;
     end;


İkinci yolda ise sadece  "DataModule1. IBTransaction1.CommitRetaining " ifadesini tüm IBQuery 'lerin afterpost, afterdelete ve afteredit olaylarına yazdım.

Merhaba,

Çalışmaması normal değil mi?
Siz IBQ_Kisiler için post parametresini kullanmıyorsunuz. ExecSQL  kullanıyorsunuz. Buradaki kullanım şekliniz doğru. Olması gereken budur.

Dataset kullanıyorsanız Edit moda alıp sonra post ile kayı yapıyorsanız buralarda kullanabilirsiniz fakat yukarıdaki kodunuz bence olması gerektiği gibi.

İyi Çalışmalar.
Cevapla
#17
Tam ben yazacaktım ki @ozcanm bey yazmış. Exec komutunda post olmaz. Query nesnesinin Dsstate özelliği Edit değil ise yine post olmaz ve ne afterpost nede beforepost gerçekleşir.
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#18
2009 yılına kadar amatör düzeyde delphi 7 kullanıyordum. 2009 'da bıraktım. Şimdi küçük bir proje için tekrar delphiye döndüm. Herşey değişmiş. Delphi'nin yeni sürümleri çıkmış. Galiba hepsi de ücretli.
Windows 8 ve 10 'da delphi 7 'yi sağlıklı çalıştıramadım. Bunun için virtual box ile xp kurdum ve her ne kadar cağın gerisinde kalmış olsa da delphi 7'yi burada çalıştırdım. Kodların çoğunu unutmuşum. Kullandıkça yavaş yavaş hatırlıyorum.
Cevapla
#19
(04-04-2021, Saat: 10:21)sunbeki Adlı Kullanıcıdan Alıntı: 2009 yılına kadar amatör düzeyde delphi 7 kullanıyordum. 2009 'da bıraktım. Şimdi küçük bir proje için tekrar delphiye döndüm. Herşey değişmiş. Delphi'nin yeni sürümleri çıkmış. Galiba hepsi de ücretli.
Windows 8 ve 10 'da delphi 7 'yi sağlıklı çalıştırmadım. Bunun için virtual box ile xp kurdum ve her ne kadar cağın gerisinde kalmış olsa da delphi 7'yi burada çalıştırdım. Kodların çoğunu unutmuşum. Kullandıkça yavaş yavaş hatırlıyorum.

Merhaba,
Burayı incelemediniz sanırım.  Community Edition sürümü ücretsizdir(Şartlı)
Lisans sözleşmesinde şöyle bir ibare yer almaktadır.

Alıntı:Lisans Alan bireysel bir geliştiriciyse, geliştirici tarafından bir takvim yılında gerçekleştirilen tüm sözleşme çalışmalarının geliri, Eşiği (Community Edition tüm projeler için kullanılıp kullanılmadığına bakılmaksızın) aşamaz. Örneğin, tek bir proje için 5.000,00 ABD Doları (veya birden çok proje için 5.000,00 ABD Dolarından fazla) alan bir geliştiricinin, Topluluk Sürümü kullanımını öngörmese bile Topluluk Sürümü'nü kullanmasına izin verilmez. Ayrıca, uygulama mağazası geliri bir yılda 5.000,00 ABD doları veya daha fazla gelire ulaştığında, yalnızca bir uygulama mağazası uygulaması oluşturan bir geliştiricinin Community Edition'ı kullanmasına izin verilmez.
Cevapla
#20
Hocam benim delphi üzerinden yıllık ne kadar para kazandığımı nasıl ölçecekler? Topluluk sürümü nedir? Konuyu tam anlayamadım.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  IBExpert ile Firebird Veri Kurtarma DelphiCanR 6 9.206 19-07-2023, Saat: 14:42
Son Yorum: baloglurecep
  Firebird - Random (Rastgele) Veri Çekme MugenPower 1 1.476 17-07-2021, Saat: 17:45
Son Yorum: mcuyan
  FireBird veri tabanını nereden indirebilirim? RAD Coder 5 8.602 23-01-2020, Saat: 18:50
Son Yorum: delphim
  Interbase/Firebird Veri Aktarımı [Ücretsiz] rmzgenius 0 2.470 19-03-2019, Saat: 09:11
Son Yorum: rmzgenius
  Firebird veri kaybı sadettinpolat 15 16.328 25-08-2017, Saat: 16:23
Son Yorum: cemaliozan



Konuyu Okuyanlar: 1 Ziyaretçi