arkadaslar son kayitdaki tarih bilgisini asagidaki sekilde aliyorum daha dogru bir yontem varsa paylasirsaniz sevinirim
saygilar
DMoyunlar.IBQuery1.SQL.Clear;
DMoyunlar.IBQuery1.SQL.Add('Select MAX(ID) from TBL_KASA' );
DMoyunlar.IBQuery1.Open;
id:= DMoyunlar.IBQuery1.Fields[0].AsInteger;
DMoyunlar.IBQuery1.SQL.Clear;
DMoyunlar.IBQuery1.SQL.Add('Select * from TBL_KASA WHERE ID='+IntToStr(id));
DMoyunlar.IBQuery1.Open;
trh:= DMoyunlar.IBQuery1.fieldbyname('DATE_').value;
(27-12-2022, Saat: 19:31)sadikacar60 Adlı Kullanıcıdan Alıntı: [ -> ]arkadaslar son kayitdaki tarih bilgisini asagidaki sekilde aliyorum daha dogru bir yontem varsa paylasirsaniz sevinirim
saygilar
DMoyunlar.IBQuery1.SQL.Clear;
DMoyunlar.IBQuery1.SQL.Add('Select MAX(ID) from TBL_KASA' );
DMoyunlar.IBQuery1.Open;
id:= DMoyunlar.IBQuery1.Fields[0].AsInteger;
DMoyunlar.IBQuery1.SQL.Clear;
DMoyunlar.IBQuery1.SQL.Add('Select * from TBL_KASA WHERE ID='+IntToStr(id));
DMoyunlar.IBQuery1.Open;
trh:= DMoyunlar.IBQuery1.fieldbyname('DATE_').value;
Merhaba ,
Tek sorgu ifadesiyle alabilirsiniz.
DMoyunlar.IBQuery1.SQL.Clear;
DMoyunlar.IBQuery1.SQL.Add('Select DATE_ from TBL_KASA WHERE ID=(Select MAX(ID) from TBL_KASA)');
DMoyunlar.IBQuery1.Open;
trh:= DMoyunlar.IBQuery1.fieldbyname('DATE_').value;
sagolun hocam tarih bilgisini string olarak '21.12.2022' olarak aldim simdi bugunun tarihini '27.12.2022' olarak alip
karsilastirma yapmam lazim
tarih kucuk ise diye islem yapmam lazim bunu nasil yapariz acaba netde arastiriyorum ama pek saglikli bir sey bulamadim.
//tarihleri karsilastir.
trhKyt:=StrToDate(trh);
myDate:=Now;
DecodeDate(myDate, myYear, myMonth, myDay);
If CompareDate(trhKyt, myDate )=-1 Then
Begin
end;
(27-12-2022, Saat: 20:02)sadikacar60 Adlı Kullanıcıdan Alıntı: [ -> ]sagolun hocam tarih bilgisini string olarak '21.12.2022' olarak aldim simdi bugunun tarihini '27.12.2022' olarak alip
karsilastirma yapmam lazim
tarih kucuk ise diye islem yapmam lazim bunu nasil yapariz acaba netde arastiriyorum ama pek saglikli bir sey bulamadim.
//tarihleri karsilastir.
trhKyt:=StrToDate(trh);
myDate:=Now;
DecodeDate(myDate, myYear, myMonth, myDay);
If CompareDate(trhKyt, myDate )=-1 Then
Begin
end;
Merhaba ,
Sorgudan dönen tarih alanını direk "TDate" olarak kullanabilirsiniz yani sorgunun altından şöyle devam edebilirsiniz;
DMoyunlar.IBQuery1.SQL.Clear;
DMoyunlar.IBQuery1.SQL.Add('Select DATE_ from TBL_KASA WHERE ID=(Select MAX(ID) from TBL_KASA)');
DMoyunlar.IBQuery1.Open;
if DMoyunlar.IBQuery1.fieldbyname('DATE_').AsDateTime < Date then
begin
end;
Hangi değerin hangisinden küçüklüğünü kontrol edeceğinizi bilemedim duruma göre if koşulundaki tarafları değiştirebilrisiniz. "Date" size günün tarihi verir.
(27-12-2022, Saat: 19:31)sadikacar60 Adlı Kullanıcıdan Alıntı: [ -> ]arkadaslar son kayitdaki tarih bilgisini asagidaki sekilde aliyorum daha dogru bir yontem varsa paylasirsaniz sevinirim
saygilar
DMoyunlar.IBQuery1.SQL.Clear;
DMoyunlar.IBQuery1.SQL.Add('Select MAX(ID) from TBL_KASA' );
DMoyunlar.IBQuery1.Open;
id:= DMoyunlar.IBQuery1.Fields[0].AsInteger;
DMoyunlar.IBQuery1.SQL.Clear;
DMoyunlar.IBQuery1.SQL.Add('Select * from TBL_KASA WHERE ID='+IntToStr(id));
DMoyunlar.IBQuery1.Open;
trh:= DMoyunlar.IBQuery1.fieldbyname('DATE_').value;
"DMoyunlar1.Last" dersen son kayıta ulaşabilirsin.
Aşağıdaki yöntemle de dosyaya tek seferde erişim sağlayarak istediğiniz elde edebilrsiniz.
DMoyunlar.IBQuery1.SQL.Clear;
DMoyunlar.IBQuery1.SQL.Add('Select Top 1 DATE_ from TBL_KASA with(nolock) Order By ID Desc)');
DMoyunlar.IBQuery1.Open;
if DMoyunlar.IBQuery1.fieldbyname('DATE_').AsDateTime < Date then
begin
end;
(29-12-2022, Saat: 14:50)adelphiforumz Adlı Kullanıcıdan Alıntı: [ -> ]Aşağıdaki yöntemle de dosyaya tek seferde erişim sağlayarak istediğiniz elde edebilrsiniz.
DMoyunlar.IBQuery1.SQL.Clear;
DMoyunlar.IBQuery1.SQL.Add('Select Top 1 DATE_ from TBL_KASA with(nolock) Order By ID Desc)');
DMoyunlar.IBQuery1.Open;
if DMoyunlar.IBQuery1.fieldbyname('DATE_').AsDateTime < Date then
begin
end;
hocam orneginiz cok guzel hata aldim problem ne olabilir acaba DATE_ hucresi varchar ve 02.01.2023 seklinde deger kaydediyor
string ile tarih degerini karsilastirdigimiz icin mi hata aliyorum acaba.
saygilar
Kod:
DMoyunlar.IBQuery1.SQL.Clear;
DMoyunlar.IBQuery1.SQL.Add('Select Top 1 convert(date,DATE_,104) DATE_ from TBL_KASA with(nolock) Order By ID Desc)');
DMoyunlar.IBQuery1.Open;
if DMoyunlar.IBQuery1.fieldbyname('DATE_').AsDateTime < Date then
begin
end;
Bu şekilde test edebilirmisiniz. Sadece sorgu içine
convert(date,DATE_,104) DATE_ bunu ekledim
Veritabanınız Firebird ise
DMoyunlar.IBQuery1.SQL.Clear;
DMoyunlar.IBQuery1.SQL.Add('Select Top 1 cast(DATE_ AS DATE) DATE_ from TBL_KASA with(nolock) Order By ID Desc)');
DMoyunlar.IBQuery1.Open;
if DMoyunlar.IBQuery1.fieldbyname('DATE_').AsDateTime < Date then
veya (denemedim)
DMoyunlar.IBQuery1.SQL.Clear;
DMoyunlar.IBQuery1.SQL.Add('Select Top 1 cast(DATE_ AS DATE) from TBL_KASA with(nolock) Order By ID Desc)');
DMoyunlar.IBQuery1.Open;
if DMoyunlar.IBQuery1.fieldbyname('DATE_').AsDateTime < Date then
Şöyle deneyiniz...
olmadi ayni hatayi veriyor
hocam yardimi olabilir diye tablo yu paylasyim
saygilar
CREATE GENERATOR GEN_TBL_KASA_ID;
CREATE TABLE TBL_KASA (
ID INTEGER NOT NULL,
BID VARCHAR(20),
DATE_ VARCHAR(50),
LANE VARCHAR(10),
OYADET INTEGER,
PARA INTEGER,
PTUR VARCHAR(100) DEFAULT 0,
DATE_TIME VARCHAR(8),
NOTT VARCHAR(250),
USER1 VARCHAR(20)
);