[Delphi] z IBQuery (between) konkrétní hodnotu

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod dyžon 2. 12. 2017 09:35

zdravim,

Kód: Vybrat vše
datum1:= '20140101';
datum2:= '20171030';
sql:= 'select * from DIAR  where DATUM BETWEEN '+ datum1 +' AND '+ datum2;

v tabulce mám 4 fieldy

potřeboval bych z IBQuery1 dostat konkrétní záznam a to třeba z fieldu 2 z data 20171014

teoreticky bych to mohl udělat tak, že vytvořím StringList
Kód: Vybrat vše
IBQuery1.First;
   while not IBQuery1.Eof do begin
     STringList.Add(IBQuery1.Fields[2].AsString);
     IBQuery1.Next;
   end;
a dopočítám kolikátej den je od zadanýho data a vytáhnu ze StringListu záznam z konkrétního StringList.String[x], ale to pro mě není úplně vhodny.
spíš bych potřeboval něco jako hodnota:= GetValue(IBQuer1.Fields[2] and (Fields[0] = 'konkrétní datum' )).AsString;
nechci znovu obtěžovat databázi, takže žádny sql, ta hodnota už je v IBQuery, akorát nevím, jak ji získat.

poraďíte prosím.
Naposledy upravil Wikan dne 2. 12. 2017 11:03, celkově upraveno 1
Důvod: odstraněny nečitelné barvy
AMD FX-6300; Gigabyte 970A-DS3P; DDR3 8192MBytes; AMD Radeon HD 6700 Series
dyžon
Junior
Uživatelský avatar

Odeslat příspěvekod dyžon 3. 12. 2017 08:12

tak jsem na to asi přišel.

Kód: Vybrat vše
if IBQuery1.Locate('DATUM', Edit1.text, [loCaseInsensitive]) then
  hodnota:= IBQuery1.Fields[StrToInt(Edit2.text)].AsString;

vzhledem k tomu, že ve Fieldu['DATUM'] je vždycky unikátní datum, ktery se nikdy neopakuje tak mi to takhle stačí.
AMD FX-6300; Gigabyte 970A-DS3P; DDR3 8192MBytes; AMD Radeon HD 6700 Series
dyžon
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků