Veritabanına tool kullanmadan kayıt etme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
furkan_scream
Üye
Mesajlar: 10
Kayıt: 17 Oca 2020 11:52

Veritabanına tool kullanmadan kayıt etme

Mesaj gönderen furkan_scream » 22 Oca 2020 06:59

Merhabalar başlık biraz değişik olmuş olabilir bu yapamadığım sistemi nasıl soracağımı bilmiyorum malesef kusuruma bakmayın,

Projemde 3 adet dbRadioGroup, 1 adet dbNavigator ve 1 adet dbGrid var.

Benim tablom da ise 4 alan var, bu 3 kaydı radioGrouplardan alabiliyorum, diğer 1 alana da OpenDialog'dan seçtiğim dosyanın adını yazdıracağım.

Butona tıklayıp açtığım dosyanın adını bir değişkene aktarıyorum, sonrasında dbNavigator'de "insert"'e tıklayıp radiogrouplardan seçimlerimi yapıp kaydediyorum. Ancak böyle yaptığım takdirde diğer 1 alan yani dosyanın adı boş kalıyor, radiogruplardan gelenler doluyor. İşin içinden çıkamadım.

Kısacası radiogroup gibi tool olmadan veritabanına radiogrouplardakileri de seçip eklemeyi nasıl yapabilirim? Opendialogdan gelen dosya adı değişkenini navigator'de insert ederken, kodları nereye yazabilirim acaba?

ertank
Üye
Mesajlar: 1281
Kayıt: 11 Eyl 2015 11:45

Re: Veritabanına tool kullanmadan kayıt etme

Mesaj gönderen ertank » 22 Oca 2020 12:30

Merhaba,

Çalışmayan kodu paylaşabilir misiniz?

furkan_scream
Üye
Mesajlar: 10
Kayıt: 17 Oca 2020 11:52

Re: Veritabanına tool kullanmadan kayıt etme

Mesaj gönderen furkan_scream » 22 Oca 2020 03:20

ertank yazdı:
22 Oca 2020 12:30
Merhaba,

Çalışmayan kodu paylaşabilir misiniz?
Hocam kodları sildim işe yaramadığı için fdquery insert into ile denemiştim. Aslında bu olayı nasıl yapacağımı öğrenmek istiyorum kodlarda bir sıkıntı yok sadece mantığını kuramadım.

ertank
Üye
Mesajlar: 1281
Kayıt: 11 Eyl 2015 11:45

Re: Veritabanına tool kullanmadan kayıt etme

Mesaj gönderen ertank » 22 Oca 2020 08:24

Hangi Delphi sürümünü kullanıyorsunuz?
Hangi veritabanı sistemini kullanıyorsunuz?
Bahsi geçen tablo yapısını paylaşabilir misiniz?

furkan_scream
Üye
Mesajlar: 10
Kayıt: 17 Oca 2020 11:52

Re: Veritabanına tool kullanmadan kayıt etme

Mesaj gönderen furkan_scream » 22 Oca 2020 11:04

ertank yazdı:
22 Oca 2020 08:24
Hangi Delphi sürümünü kullanıyorsunuz?
Hangi veritabanı sistemini kullanıyorsunuz?
Bahsi geçen tablo yapısını paylaşabilir misiniz?
Delphi XE7
SQLite
FDTable (hocam bahsi geçen tablo yapısı derken tam anlamadım)

ertank
Üye
Mesajlar: 1281
Kayıt: 11 Eyl 2015 11:45

Re: Veritabanına tool kullanmadan kayıt etme

Mesaj gönderen ertank » 23 Oca 2020 03:46

FDTable olayları (Events) içinde AfterInsert olayına aşağıdaki gibi bir kod yazabilirsiniz.

Kod: Tümünü seç

procedure TForm3.FDTable1AfterInsert(DataSet: TDataSet);
begin
  DataSet.FieldByName('dosya_adi_alani').AsString := Dosya_Adi_Degiskeni;
end;
Yukarıdaki örnekte ilgili alan adını ve dosya adını sakladığınız değişken adını düzeltmeniz gerekli.

AfterInsert olayı her yeni kayıt eklendiğinde (DbNavigator üzerinden INSERT butonu tıklandığında) çalışacaktır. Dolayısıyla eğer kullanıcı hiç OpenDialog kullanarak dosya seçimi yapmamış ise yine dosya adı alanınız boş olacaktır.

Diğer taraftan, kullanıcı bir defa OpenDialog kullanarak dosya adı seçimi yapar ise bundan sonra tekrar yapana kadar tüm yeni kayıtlara ilk seçilen dosya adını kayıt edecektir.

Bu gibi durumlar sizin için sorun teşkil eder ise uygun şekilde önlemini almalısınız.

furkan_scream
Üye
Mesajlar: 10
Kayıt: 17 Oca 2020 11:52

Re: Veritabanına tool kullanmadan kayıt etme

Mesaj gönderen furkan_scream » 31 Oca 2020 10:36

ertank yazdı:
23 Oca 2020 03:46
FDTable olayları (Events) içinde AfterInsert olayına aşağıdaki gibi bir kod yazabilirsiniz.

Kod: Tümünü seç

procedure TForm3.FDTable1AfterInsert(DataSet: TDataSet);
begin
  DataSet.FieldByName('dosya_adi_alani').AsString := Dosya_Adi_Degiskeni;
end;
Yukarıdaki örnekte ilgili alan adını ve dosya adını sakladığınız değişken adını düzeltmeniz gerekli.

AfterInsert olayı her yeni kayıt eklendiğinde (DbNavigator üzerinden INSERT butonu tıklandığında) çalışacaktır. Dolayısıyla eğer kullanıcı hiç OpenDialog kullanarak dosya seçimi yapmamış ise yine dosya adı alanınız boş olacaktır.

Diğer taraftan, kullanıcı bir defa OpenDialog kullanarak dosya adı seçimi yapar ise bundan sonra tekrar yapana kadar tüm yeni kayıtlara ilk seçilen dosya adını kayıt edecektir.

Bu gibi durumlar sizin için sorun teşkil eder ise uygun şekilde önlemini almalısınız.
Çok teşekkür ederim hocam :)

Cevapla