Tüm Platformlar için Hızlı Uygulama Geliştirme Kitabı... Delphi

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Veri Tabanına Tarih Eklemek
#1
Merhabalar, Form üzerine bir tane DateTimePicker1 ekledim. Program çalıştığında seçili tarihi DBGrid'e kaydetmesini istiyorum ama mantığını bir türlü kavrayamadım. Yardımcı olabilir misiniz?
Don't fear the try!
WWW
Cevapla
#2
Sorunu hallettim. Son kullanma tarihi adlı veri ismini datetimepickeri le birleştirdikten sonra veri tabanına kayıt gerçekleşti.
MSQuery1Son_Kul_Tarih.AsDateTime := DateTimePicker1.Date;
Don't fear the try!
WWW
Cevapla
#3
(12-01-2017, Saat: 11:01)cudyfoster Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhabalar, Form üzerine bir tane DateTimePicker1 ekledim. Program çalıştığında seçili tarihi DBGrid'e kaydetmesini istiyorum ama mantığını bir türlü kavrayamadım. Yardımcı olabilir misiniz?

Bak şimdi konu başlığına bakarak şöyle adım adım gidelim,
Amacın : Veri tabanındaki tarihi dbgrid te göstermek.
Cevap  : 
1) Ozaman ilk olarak veritabanında bir tane tarih tipinde alan oluşturmak. Örnek : Bugun: Date 
2) Formunda bir datetimepicker, button, table ve dbgrid var. Şimdi Formdaki button onclick olayına da kodumuzu yazalım.

// ilk olarak veritabanını kayıt moduna alalım. ( Ben paradox veri tabanı kullandığını düşünerek kodu yazıyorum sen kendine göre değiştir)
Table1.append;
// bu satırda diyoruz ki, veritabanındaki bugun değişkeninin değeri , datatimepickerdaki tarihe eşit.
Table1Bugun.asdatetime:=Form1.Datatimepicker.asdate;

//Kaydı girdik , veritabanını güncelleyelim ki kaydımız görünsün
table1.refresh;

Mantığını anlaman için bu şekilde anlattım. Gerisini sen çözersin zaten. Kolay gelsin.
Cevapla
#4
(12-01-2017, Saat: 13:43)Lord_Ares Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(12-01-2017, Saat: 11:01)cudyfoster Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhabalar, Form üzerine bir tane DateTimePicker1 ekledim. Program çalıştığında seçili tarihi DBGrid'e kaydetmesini istiyorum ama mantığını bir türlü kavrayamadım. Yardımcı olabilir misiniz?

Bak şimdi konu başlığına bakarak şöyle adım adım gidelim,
Amacın : Veri tabanındaki tarihi dbgrid te göstermek.
Cevap  : 
1) Ozaman ilk olarak veritabanında bir tane tarih tipinde alan oluşturmak. Örnek : Bugun: Date 
2) Formunda bir datetimepicker, button, table ve dbgrid var. Şimdi Formdaki button onclick olayına da kodumuzu yazalım.

// ilk olarak veritabanını kayıt moduna alalım. ( Ben paradox veri tabanı kullandığını düşünerek kodu yazıyorum sen kendine göre değiştir)
Table1.append;
// bu satırda diyoruz ki, veritabanındaki bugun değişkeninin değeri , datatimepickerdaki tarihe eşit.
Table1Bugun.asdatetime:=Form1.Datatimepicker.asdate;

//Kaydı girdik , veritabanını güncelleyelim ki kaydımız görünsün
table1.refresh;

Mantığını anlaman için bu şekilde anlattım. Gerisini sen çözersin zaten. Kolay gelsin.

Teşekkür ederim ^^
Don't fear the try!
WWW
Cevapla
#5
benimde benzer bir sorunum var sql kullanıyorum veri tabanına tarih eklerken sql dönüşüm hatası alıyorum kodlar şu şekilde
adoquery1.close;
adoquery1..sql.clear;
adoquery1..sql.add('insert into islemler(uyetc,isbn,tarih1,tarih2,tarih3)');
adoquery1..sql.add('values('''+dbedit2.text+''','''+dbedit4.text''',:verilistarihi,:teslimtarihi,:gelistarihi)');
adoquery1.Parameters.ParamByName().values:=Datetimepicker1.date;
adoquery1.ExexSQl;
Cevapla
#6
Merhaba,
Aramıza hoş geldiniz.
Oluşan SQL hatasını paylaşma imkânınız varsa daha hızlı yardımcı olabiliriz.
Vermiş olduğunuz kod parçasında hataya sebebiyet verecek kısım; istenen veri tipi ile gönderilen veri tipinin uyuşmaması olabilir.
uyetc ve isbn alanları tek tırnak işareti ile gönderilmiş. Bu alanlar sayısal ise değerlerini tırnak işareti olmadan gönderin. 
Ayrıca tarih değerlerini tek tırnak işareti ile göndermelisiniz. Kodun okunabilirliğini arttırma adına tırnak işaretlerini QuotedStr fonksiyonu ile gönderebilirsiniz.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#7
(26-04-2018, Saat: 21:23)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,
Aramıza hoş geldiniz.
Oluşan SQL hatasını paylaşma imkânınız varsa daha hızlı yardımcı olabiliriz.
Vermiş olduğunuz kod parçasında hataya sebebiyet verecek kısım; istenen veri tipi ile gönderilen veri tipinin uyuşmaması olabilir.
uyetc ve isbn alanları tek tırnak işareti ile gönderilmiş. Bu alanlar sayısal ise değerlerini tırnak işareti olmadan gönderin. 
Ayrıca tarih değerlerini tek tırnak işareti ile göndermelisiniz. Kodun okunabilirliğini arttırma adına tırnak işaretlerini QuotedStr fonksiyonu ile gönderebilirsiniz.

yorumunuzu sonradan gördüm kusura bakmayın


Ek Dosyalar Resimler
   
Cevapla
#8
Program çalışınca dbye kaydedecek ise,  anladığım kadarıyla kişinin seçtiği tarihi değil,  uygulamanın açılış tarihini kaydedeceksin.

Yanlış anladıysam affola.

O halde 
MSQuery1Son_Kul_Tarih.AsDateTime := Now;

Yaz geç datetime ile uğraşma.

Ek olarak
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#9
(26-04-2018, Saat: 21:43)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlProgram çalışınca dbye kaydedecek ise,  anladığım kadarıyla kişinin seçtiği tarihi değil,  uygulamanın açılış tarihini kaydedeceksin.

Yanlış anladıysam affola.

O halde 
MSQuery1Son_Kul_Tarih.AsDateTime := Now;

Yaz geç datetime ile uğraşma.

alanın biri bu şekilde olabilri 
biri dışardan girilcek bi alanda şimdiki tarihden 2 hafta sonrası olcak
Cevapla
#10
(26-04-2018, Saat: 21:04)Slyman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olbenimde benzer bir sorunum var sql kullanıyorum veri tabanına tarih eklerken sql dönüşüm hatası alıyorum kodlar şu şekilde
adoquery1.close;
adoquery1..sql.clear;
adoquery1..sql.add('insert into islemler(uyetc,isbn,tarih1,tarih2,tarih3)');
adoquery1..sql.add('values('''+dbedit2.text+''','''+dbedit4.text''',:verilistarihi,:teslimtarihi,:gelistarihi)');
adoquery1.Parameters.ParamByName().values:=Datetimepicker1.date;
adoquery1.ExexSQl;


ParamByName neden boş ?


('values('''+dbedit2.text+''','''+dbedit4.text''',:verilistarihi,:teslimtarihi,:gelistarihi)');

Neden buranın yarısı, parametre, diğer yarısı sql inj. hatalarına açık halde?

(26-04-2018, Saat: 21:46)Slyman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(26-04-2018, Saat: 21:43)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlProgram çalışınca dbye kaydedecek ise,  anladığım kadarıyla kişinin seçtiği tarihi değil,  uygulamanın açılış tarihini kaydedeceksin.

Yanlış anladıysam affola.

O halde 
MSQuery1Son_Kul_Tarih.AsDateTime := Now;

Yaz geç datetime ile uğraşma.

alanın biri bu şekilde olabilri 
biri dışardan girilcek bi alanda şimdiki tarihden 2 hafta sonrası olcak
Anladım.
Now + 14 sana iki hafta sonrasını verecektir.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Comporttan veri bittiğini nasıl anlarız ? seci20 11 164 Dün, Saat: 17:54
Son Yorum: arsl01
  Unidac veri ekleme arsl01 3 125 29-09-2018, Saat: 17:06
Son Yorum: arsl01
  Delphi & FTP txt veri işleme Mr.Developer 21 644 28-09-2018, Saat: 08:21
Son Yorum: Fesih ARSLAN
  Veri Tabanı Bağlantı Yöntemi emrahgs 6 308 12-09-2018, Saat: 18:24
Son Yorum: emrahgs
  JSON Veri Okuma elixir84 12 808 12-06-2018, Saat: 13:50
Son Yorum: elixir84



Konuyu Okuyanlar: 1 Ziyaretçi