Dbedit içeriğinin veritabanına kayıt sorunu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Dbedit içeriğinin veritabanına kayıt sorunu
Arkadaşlar selam; access vt. kullanarak yazdığım programda, bilgiler ekrana dbeditlere geliyor,ben bu dbeditlere bilgi girdiğimde kaydet demeden dbedit in içeriğini değiştirince otomatikman tabloya kaydediyor. Bu şekilde kayıt yapmasını istemiyorum ben. Kaydet demeden kayıt yapmasın. Bu sorunu nasıl hallede bilirim? Bu aşamadan sonra normal edit kullanma şansın yok.
mmnckr
Merhaba,
Eğer ttable bileşeni kullanıyorsanız. Autorefresh özelliğini false yapıp deneyin.
Ben bu özelliği false yapıp bir alanı değiştirdim. Normal olarak değiştirdi. Programı kapatıp bir daha girdim. Eski bilgi duruyordu. Bu defa alanı değiştirip kaydet butonuna bastım. Yine çıkıp programa girdim. Bu defa düzelttiğimi gösteriyordu.
Kaydet butonuna komutunu girmiştim.
Kolay gelsin.
Eğer ttable bileşeni kullanıyorsanız. Autorefresh özelliğini false yapıp deneyin.
Ben bu özelliği false yapıp bir alanı değiştirdim. Normal olarak değiştirdi. Programı kapatıp bir daha girdim. Eski bilgi duruyordu. Bu defa alanı değiştirip kaydet butonuna bastım. Yine çıkıp programa girdim. Bu defa düzelttiğimi gösteriyordu.
Kaydet butonuna
Kod: Tümünü seç
Table1.post;
Kolay gelsin.
Table nin CachedUpdates özelligini true yapin.
forma bir düğme ekleyin. onclickine aşağıdaki kodu yazın.
kolay gelsin.
forma bir düğme ekleyin. onclickine aşağıdaki kodu yazın.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.ApplyUpdates();
end;
Kolay gelsin,
Bence Private de veya public de bir procedure tanımla
procedure izleme();
procedure kayıt();
{$R *.dfm}
nin altına
Daha sonra Formun on show olayına
sadece
izleme; // bu kod yukarıdaki procedureyi tetikleyecektir.....
yazman yeterli, kayıt yapacaksa kişi düzelt deyip veya ne diyorsanız o butonla kayıt moduna geçirir sonrada kaydetle (Edit,Post) la işlemi yaptırırsınız.
Kolay gelsin.....
Bence Private de veya public de bir procedure tanımla
procedure izleme();
procedure kayıt();
{$R *.dfm}
nin altına
Kod: Tümünü seç
Procedure TForm1.izleme();
begin
DBEdit1.ReadOnly:=True;
DBEdit.....Readonly leri True artık ne kadar varsa
end;
Procedure TForm1.kayıt();
begin
DBEdit1.ReadOnly:=False;
DBEdit.....Readonly leri False artık ne kadar varsa
end;
sadece
izleme; // bu kod yukarıdaki procedureyi tetikleyecektir.....
yazman yeterli, kayıt yapacaksa kişi düzelt deyip veya ne diyorsanız o butonla kayıt moduna geçirir sonrada kaydetle (Edit,Post) la işlemi yaptırırsınız.
Kolay gelsin.....
Datasetinin bağlı olduğu datasource nesnesinin autoedit özelliğini false yaparsan sorunun çözülür.Kolay gelsin.Bu özelliği öğrenmeden önce bende dbeditleri readonly özellikleriyle bunu uyguluyordum ancak bazen yeni bir şey ekleyince bunları değiştirmeyi falan unutabiliyosun.Bu dediğim en garanti yolu.Çalışmalarında başarılar.Kolay gelsin.