DBGRID Tarih field kilitlenme problemi hakkında

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
emrekilinc1984
Üye
Mesajlar: 58
Kayıt: 15 Eyl 2016 12:13

DBGRID Tarih field kilitlenme problemi hakkında

Mesaj gönderen emrekilinc1984 »

Merhaba arkadaşlar aşağıdaki kodlarla dbgrid'e veri giriyorum fakat 2 tane tarih alanım var onlara veri giremiyorum kilitleniyor bende adoquery filed ları ekliyorum bu seferde tarihleri giriyorum ama tarih alanına girdiğim veriyi boş kaydediyor sql'e ne yapmam gerekiyor yardımlarınızı bekliyorum..
************************************************************************************


DBGrid1.Options:=DBGrid1.Options-[dgRowSelect];
DBGrid1.Options:=DBGrid1.Options+[dgEditing];

ekle.Enabled:=false;
kaydet.Enabled:=true;
degistir.Enabled:=false;
sil.Enabled:=false;
iptal.Enabled:=true;
yazdir.Enabled:=false;
kapat.Enabled:=false;

module.adoPlanlama.Insert;

DBGrid1.SelectedIndex := 0;
DBGrid1.SetFocus;
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: DBGRID Tarih field kilitlenme problemi hakkında

Mesaj gönderen ertank »

Merhaba,

Öncelikle soru sorarken bazı noktalara dikkat etmenizde fayda var.
1- Gönderdiğiniz kod örneğini [ code ] ve [ / code ] bloklarının arasında yazarsanır okunması daha kolay olacaktır. Bu kod blokları Tam Editör modunda buton olarak tıklanarak yazıya eklenebilir.
2- Tarih alanlarınızın database tablo isimlerini yazmamışsınız.
3- Tarih alanlarınızın içine sadece tarih mi yoksa tarih ve saat bir arada mı bilgi girmek istiyorsunuz belirli değil.
4A- Tarih alanlarına atamayı "ekle" butonuna tıklandığı zaman mı girmek istiyorsunuz?
4B- Yoksa "kaydet" butonuna tıklandığı sırada mı girmek istiyorsunuz?
4C- Yoksa kullanıcının bu alana veri girmesini mi istiyorsunuz? Sorunuzun içinde bu bilgi de mevcut değil.

Foruma yeni üye olduğunuz için bu yazılanları lütfen şahsınıza saldırı olarak algılamayın. Sadece ücretsiz şekilde yardım aldığınız bu forumdaki yardım beklediğiniz kişilerin boş zamanlarına olan saygı olarak düşünün. Düşünülerek hazırlanmış sorulara direk yanıtlar alma ihtimaliniz çok daha yüksektir.

Sorunuz ile ilgili olarak. Gönderdiğiniz kod herhangi bir Database alanına atama yapmıyor. Sadece database'i yeni kayıt giriş moduna geçiyor. Tam olarak araya kayıt ekleme moduna geçiriyor. Siz

Kod: Tümünü seç

module.adoPlanlama.Insert;
satırından sonra yukarıdaki 4 numaralı maddedenin hangi şıkkı sizin için geçerli ise buna uygun yerde her bir tarih alanı için aşağıdaki gibi bir satır eklemelisiniz.

Kod: Tümünü seç

module.adoPlanlama.FieldByName('TarihAlanininAdi').AsDateTime := DateOf(now);

NOT: DateOf() fonksiyonu DateUtils içinde tanımlanmıştır. Unit içideki uses kısmına eklemeniz gerekebilir.
emrekilinc1984
Üye
Mesajlar: 58
Kayıt: 15 Eyl 2016 12:13

Re: DBGRID Tarih field kilitlenme problemi hakkında

Mesaj gönderen emrekilinc1984 »

hocam merhaba öncelikle teşekkürler ben ekle dedikten sonra dbgrid'te tüm alanları dolduruyorum ama tarih alanına gelince yazdığım tarih bir alt satıra geçince grid içinde yok oluyor çözemiyorum yardımlarınızı bekliyorum.
emrekilinc1984
Üye
Mesajlar: 58
Kayıt: 15 Eyl 2016 12:13

Re: DBGRID Tarih field kilitlenme problemi hakkında

Mesaj gönderen emrekilinc1984 »

merhaba arkadaşlar ekte örnek projem var inceleyip yardımcı olabilirmisiniz rica etsem.

http://s9.dosya.tc/server/1bhkt3/ornek.rar.html
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: DBGRID Tarih field kilitlenme problemi hakkında

Mesaj gönderen greenegitim »

Tarih alanı date bir alanmı yoksa timestamp bir alanmı tarih alanı ise
module.adoPlanlama.FieldByName('TarihAlanininAdi').value:=date; yazın
Mücadele güzelleştirir!
emrekilinc1984
Üye
Mesajlar: 58
Kayıt: 15 Eyl 2016 12:13

Re: DBGRID Tarih field kilitlenme problemi hakkında

Mesaj gönderen emrekilinc1984 »

merhaba hocam evete tarih alanı date bir alan sizin yolladığınız kodu nereye yazacağım? bunu ben dbgrid içinden giriş yapmak istiyorum adotable buna izin veriyor ama adotable işimi görmüyor.
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: DBGRID Tarih field kilitlenme problemi hakkında

Mesaj gönderen greenegitim »

Proje dosyanda hiç kod yok bir button koy ve buttonun click eventına

Kod: Tümünü seç

ADOQuery1.Append;
ADOQuery1order_no.Value:=1;
ADOQuery1termin_tarihi.Value:=Date;
ADOQuery1.Post;
yaz termin_tarihi alanının date tanımlandığına eminmisin?
Mücadele güzelleştirir!
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: DBGRID Tarih field kilitlenme problemi hakkında

Mesaj gönderen ertank »

emrekilinc1984 yazdı:merhaba arkadaşlar ekte örnek projem var inceleyip yardımcı olabilirmisiniz rica etsem.

http://s9.dosya.tc/server/1bhkt3/ornek.rar.html
Örnek uygulama içindeki SQL sorgusu ile "siparis_tarih" ve "termin_tarihi" alanlarını tarih formatından çıkarıp Varchar(20) yani string alana dönüştürüyorsunuz.

1- Bu SQL ile emin olmamakla birlikte DBGrid içinden elle tarih girişi yaptıramazsınız. ADOQuery.SQL içeriğini aşağıdaki şekilde değiştirerek deneyebilir misiniz?

Kod: Tümünü seç

select order_no, model_tanim, adet, siparis_tarih, termin_tarihi, baski_durum,
  urun_durumu, firma_adi, aktar from uretim_planlama
2- Eğer tarih alanının TDBGrid içinde görüntülenme şeklini değiştirmek istiyorsanız OnFormCreate() olayına aşağıdaki gibi bir kod yazabilirsiniz.

Kod: Tümünü seç

procedure TForm1.FormCreate(Sender: TObject);
begin
  ADOQuery1.Close();
  ADOQuery1.Open();
  TDateTimeField(ADOQuery1.FieldByName('siparis_tarih')).DisplayFormat := 'dd/mm/yyyy';
  TDateTimeField(ADOQuery1.FieldByName('termin_tarihi')).DisplayFormat := 'dd/mm/yyyy';
end;
emrekilinc1984
Üye
Mesajlar: 58
Kayıt: 15 Eyl 2016 12:13

Re: DBGRID Tarih field kilitlenme problemi hakkında

Mesaj gönderen emrekilinc1984 »

hallettim dün gece teşekkürler arkadaşlar.
Cevapla