Bir tabloda girilen kayıtları düzeltmek için bir arama formu yapıyorum. Arama kriteri olabilecek field'lar için birer tane edit kutusu koydum ve bunların KeyUp event'ıda locate ile ilgili kaydı aratıyorum.
Tarih kısmında locate çalışmadı (ya da ben çalıştıramadım), bunun üzerine, edit ktusunun onexit event'ına bir sql sorgusu yaptırdım dönen sonuctaki kaydın id'sinin alıp bu id ile locate yaptırayım dedim ama sql sorgusu boş dönüyor. Aceba neden?
Birde yürttüğüm bu mantık doğru mudur? Başka fikri olan?
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
kod gönderrisen, yardımcı olmaya çalışırız. Bir de hangi DB'yi kullandığını yazman yardımcı olur.
NOT : Tarih değerleri genelde saatle birlikte kaydedilirler. Buna da dikkat ettin mi? yani sen '01.03.2004' diye arattırıyorsundur ama veritabanında '01.03.2004 12:35:00' gibidir.
field'ı datamodule'de tdate olarak tanımladım, ancak uyarı veriyor tdatetime olması gerekiyor diyor. access kullanıyorum şu anda, program bittikten sonra mssql'e atacağım database'i. access'de alanı tanımlarken kısa tarih olarak tanımladım.
Mustafa Hocam haklı Tarih alanları ACCESS veri tabanında Saat ile birlikte alınır.
Alanı Kısa Tarih olarakta tanımlama yapsanda farkeden birşey olmaz Saat yazılacaktır.
Veritabanında Tarih Veri alanlarını kontrol etmeni tafsiye ederim F2 tuşu ile.
with dm.qgenel do
begin
close;
sql.Clear;
sql.Add('select Kimlik from nikah where evlenmetarihi like :tarih');
Parameters.ParamByName('tarih').Value:=strtodatetime(LabeledEdit6.text);
open;
ShowMessage(inttostr(FieldByName('Kimlik').AsInteger));
dm.tblnikah.Locate('Kimlik',FieldByName('Kimlik').AsInteger,[loCaseInsensitive,loPartialKey]);
end; {with}
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned