Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

ÖNEMLİ AÇIKLAMA: MUTLAKA OKUYUNUZ!

Gönderen Konu: firebird yaptığım değişiklikleri delphi de göremiyorum..:(  (Okunma sayısı 4978 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı shrlr

  • Yeni Üye
  • *
  • İleti: 5
  • Rep: +0/-0
slm arkadaşlar ben firebirte yaptığım tablomda bir kaç değişiklik yapıyorum fakat bunu delphide tekrar bağlantı yaptığımda yaptığım değişiklikleri göremiyorum...sanki güncellemiyor gibi...tabloma bir alan ekledim ama bu alanı yok olarak görüyor yardımcı olursanız sevinirim...
« Son Düzenleme: 05 Ağustos 2008 12:17:50 by Kocaturk »

triangle

  • Ziyaretçi
Ynt: firebird yaptığım değişiklikleri delphi de göremiyorum..:(
« Yanıtla #1 : 05 Ağustos 2008 10:31:03 »
afterpost ve afterdelete olayına table1.applyupdates eklersen olur sanırsam transection da commit olması gerek

Çevrimdışı hayati

  • Administrator
  • *****
  • İleti: 860
  • Rep: +19/-3
  • Cinsiyet: Bay
Ynt: firebird yaptığım değişiklikleri delphi de göremiyorum..:(
« Yanıtla #2 : 05 Ağustos 2008 13:43:59 »
Kod: Delphi
  1. procedure TForm1.IBDataSet1AfterPost(DataSet: TDataSet);
  2. begin
  3.    IBTransaction1.CommitRetaining;
  4. end;


http://www.delphidunyasi.net/index.php/topic,86.0.html
İncelemenizi tavsiye ederim.
Ayrıca dediğiniz olay benimde başıma gelmişti ve hiç bir çözüm bulamamıştım, yalnız benim sorunum tabloya sonradan bir kaç alan daha ekledikten sonra meydana geldi, tabloyu tekrar (sıfırdan) oluşturduktan sonra sorun kalmadı.
Olsa dahi tenimin kıl biten her yeri bir dil, güçsüzüm şükretmeye,şükrüm binde bir bile değil (İ.R.)

Çevrimdışı shrlr

  • Yeni Üye
  • *
  • İleti: 5
  • Rep: +0/-0
Ynt: firebird yaptığım değişiklikleri delphi de göremiyorum..:(
« Yanıtla #3 : 05 Ağustos 2008 13:45:43 »
evet sorunumu hallettim teşekkür ederim...sizlerede kolay gelsin...

Çevrimdışı azizn

  • Kıdemli Üye
  • *****
  • İleti: 57
  • Rep: +0/-1
Buna benzer bir soruda ben sorsam;
Bende kişi bilgileri ve kişiye ait her ay girilmesi gereken bilgi alanlarının olduğu delphi ve firebird kullanarak bir program yaptım.İlk bilgi girişi yapıyorum daha sonra programı kapatıp tekrar açıp aynı kişiye ait bir başka alana bilgi giriyorum.Tekrar kapatıp açtığımda ikinci bilgiler görünmüyor.
ibdataset1.edit; yazdığım buton işe yaramıyor.
Bu duruma bir yardım edermisiniz
« Son Düzenleme: 27 Mart 2009 15:37:34 by azizn »

Çevrimdışı azizn

  • Kıdemli Üye
  • *****
  • İleti: 57
  • Rep: +0/-1
Ynt: firebird yaptığım değişiklikleri delphi de göremiyorum..:(
« Yanıtla #5 : 06 Eylül 2009 04:37:47 »
Sorunum hala taptaze devam ediyor.Gerçi geçen 5 aylık zaman zarfında bende bu konuda araştırma yapmadım (yapamadım desem daha doğru sanırım,programın büyük kısmı bitti fakat hesapta olmayan sebeplerden ara verdim) yinede bir cevap verirseniz memnun olurum.
Sorunumu kısaca özetlersem;

Delphi+Firebird 2,1+ibexpert kullanıyorum.
Bir tablo var,"AD+SOYAD+İLK TARİH+SONRAKİ TARİH+SONRAKİ TARİH" diye devam eden alanlarım var.Tabloya,kişiyi ilk geldiğinde kaydediyorum ve ilk tarih alanına veri girişi yapıyorum, burda sorun yok.Kişi bir süre sonra tekrar geldiğinde o günün tarihini yazıp kaydediyorum,fakat programı açıp kapattığımda veriler yok.Yada kişi ile ilgili herhangibir bilgiyi değiştirmek istediğimde program açılıp kapanınca bütün herşey ilk haline dönüyor.
Yani sadece yeni bir kayıt ekleyebiliyorum,sonraları o kayıtla ilgili herhangi bir değişiklik yapamıyorum.
Butonların kodları aşağıda
procedure TGDNEVRAKfrm.SpeedButton4Click(Sender: TObject);

//YENI KAYIT BUTONU
begin
ActiveControl:=DBEdit2;
ibdataset1.Close;
ibdataset1.SelectSQL.Clear;
ibdataset1.SelectSQL.Add('select * from GIDENEVRAKDEFTERI');
ibdataset1.Open;
ibdataset1.Append;

end;

procedure TGDNEVRAKfrm.SpeedButton5Click(Sender: TObject);
//KAYDET BUTONU
var
kaydet:integer;
begin
kaydet:=Application.MessageBox(' KAYDETMEK iSTiYORMUSUNUZ?','KAYDET',MB_YesNO);
if kaydet=mrYes Then
begin
if IBDataSet1.State in [dsInsert, dsEdit] then
IBDataSet1.Post;
end
else
ShowMessage('KAYIT iŞLEMi iPTAL');
ibdataset1.cancel;
image1.Left:=224;
image1.Top:=25;
end;

procedure TGDNEVRAKfrm.SpeedButton6Click(Sender: TObject);
//DUZENLE BUTONU
begin
ibdataset1.Edit;
end;

procedure TGDNEVRAKfrm.SpeedButton7Click(Sender: TObject);
//IPTAL ET BUTONU
begin
ibdataset1.Cancel;

end;

Saygılar
« Son Düzenleme: 06 Eylül 2009 04:48:13 by azizn »

Çevrimdışı Fatih

  • Emekli Yönetici
  • *****
  • İleti: 2.217
  • Rep: +43/-10
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: firebird yaptığım değişiklikleri delphi de göremiyorum..:(
« Yanıtla #6 : 09 Eylül 2009 15:31:02 »
Büyük ihtimalle IBDataSet'in ModifySQL özelliğinde sorun var.
Malulen emekli programcı / yazar. Bildiklerini unutmakta olduğundan size cevap veremez.

Çevrimdışı GURGAH

  • Yeni Üye
  • *
  • İleti: 10
  • Rep: +0/-0
anladığım kadarı ile sorun çözülmüş ama
birde bunu deneyebilirisniz

updateQuery.ExecSQL

kolay gelsin
« Son Düzenleme: 31 Ekim 2009 14:36:58 by GURGAH »

Çevrimdışı azizn

  • Kıdemli Üye
  • *****
  • İleti: 57
  • Rep: +0/-1
Şİmdi konuyu hortlatmış gibi olucam ama bugün formda yaptığım değişikliklerin veritabanına yansımaması ile ilgili bir deneme yaptım ve bunu paylaşayım istedim.
Önce firebird da bir deneme database ve ID,ADI,SOYADI alanlarına sahip bir  tablo oluşturdum.Delphide ibdatabase,ibdataset,ibtransaction ve datasource bileşenlerini kullanarak bağlantıyı yaptım.(ibtransaction default action=commit retaining""transaction properties=read commited)Bileşenlerin default ayaralarıyla hiç oynamadan kayıt yapıp bunları değiştirmeyi denedim ve herhangi bir sorun olmadı.
Daha sonra ibexpertte deneme tabloma yeni bir alan ekleyip delphi tarafında bu alanıda forma ekleyip dataset ayarlarını yaptıktan sonra tekrar kayıt yapıp değiştirmeyi denedim.
Bu defa yeni alan eklemeden önce yaptığım kayıtlar üzerinde yaptığım değişiklikler veritabanına yansımadı.Fakat yeni alan ekledikten sonra yaptığım kayıtlar üzerinde değişiklik yapabildim.
Yani tabloyu ilk oluşturduktan sonra örneğin 3 kaydım vardı,tabloya yeni bir alan ekledikten sonra 2 kayıt daha ekledim.Bu kayıtlardan ilk 3 kayıtta değiklik olmadı,sonraki 2 kayıtta değişiklik yapabiliyorum.
Acaba bu bir sorunmudur yoksa benim yapmam gereken bir işlemi yapmadığım içinmi kaynaklanıyordur anlayamadım.
Teşekkür ederim.

Çevrimdışı azizn

  • Kıdemli Üye
  • *****
  • İleti: 57
  • Rep: +0/-1
Sayın delphidunyasi sakinleri.Az önce,Delphi tarafında veritabanından silinmiş,değiştirilmiş gibi görünüp veritabanında hiçbir değişiklik göstermeme olayını çözdüm çok şükür ve şu an acayip bi sevinç içindeyim.Belki basit bişey ama olsun :))

ibdatabase-ibdataset-transaction ve datasource bileşenlerini formumuza yerleştirdik.Bağlantıları yaptık.
İbdatabase>> databasename veritabanımızı gösterdik.defaulttransaction özelliğine transactionumuzu gösterdik.
ibtransaction>>defaultaction=commitretaining    transaction properties=readcommited
ibdataset>>database özelliğine ibdatabase1 gösterdik.selectsql özelliğine tıklayıp select * from "tablomuz".Daha sonra datasete sağ tıklayıp dataset editöre giriyoruz.get table fields-dataset defaults butonlarına tıklayıp,select primary keys butonuna tıkladıktan sonra "Key Fileds"  bölümünde primary key olan alanı seçiyoruz,update fields bölümünde bütün alanlarımız seçili durumda.(Aslında ben tabloda primary key tanımlamadım fakat ID alanımı Key fields bölümünde işaretledim)Daha sonra generate sql butonuna tıklıyoruz ve OK.Daha sonra bileşenlerimizi aktif hale getirip afiyetle silme değiştirme işlemlerini yapabiliriz :)))
Burada en önemli olay datasetin dataset editör ayarları.Konuyla ilgili denemelerimde dataset default butonuna tıklayıp select primary key kısmında key fields olarak bütün alanlar seçili olduğunda veritabanında silme değiştirme işlemi yapmıyor.Fakat select primary key tıklayıp key fields olarak tek alanı işaretleyip generate sql derseniz işlemler normal olarak devam ediyor.

Biraz karmaşık bi açıklma oldu ama sevincime verin artık :))
İyi geceler

Çevrimdışı Cturk

  • Kıdemli Üye
  • *****
  • İleti: 256
  • Rep: +5/-1
  • Cinsiyet: Bay
Ynt: firebird yaptığım değişiklikleri delphi de göremiyorum..:(
« Yanıtla #10 : 06 Şubat 2010 00:17:59 »
Arkadaş Sorunu çözdüm diyor ama Ben yinede ekleme yapayım; Firebird'ü Ağ'da kullanırken "Lock" yani kilit koyma ,aynı kayıt üzerinde iken tabloda işlem yapılması "DeadLock'a düşürür ve bu IBX bileşenlerinin bir programcıya eksi_bonus'udur ,Formlarda araştırırsanız göreceksiniz; IBX bileşeni IBTransactiondan kaynaklanan sorunu Hata kodları ile önlemeye çalışılmış hatta çift transaction Çift Dataset bile kullanılmıştır. ama bu soruna kalıcı bir çözüm bulunamamıştır.Ya IBX bileşenlerini kullanmayacaksınız yada yukardaki gibi geçici çözümlerle uğraşacaksınız, ama ben bu sorunu  FIBPlus Bileşenleri ile aştım, Çift FIBTransaction kullanarak FIBdataset ile Objectinspector'den AutoCommit=True yaparak Mükemmel performans alıyor Aynı Tabloda istediğiniz gibi "DeadLock'a" düşmeden işlem yapabiliyorsunuz.

Kolay gelsin
« Son Düzenleme: 06 Şubat 2010 00:19:50 by Cturk »