

Delphi 7 - hľadanie záznamu - Locate - VarArrayOf
V Delphi som hľadať potrebný záznam v Table a riešil som to takto:
RecNo := 0;
while (RecNo < RecordCount) and (id <> Fields[7].AsInteger) do
RecNo := RecNo + 1;
if id <> Fields[7].AsInteger then id := -1;
Všetko bolo v poriadku, až na jeden detail. Po otvorení súboru z disku (v programe) sa takto hľadal správny riadok tabuľky. Na moje zdesenie, tabuľka mala pôvodne dva záznamy a po tomto mala 4. Tretí a štvrtý boli opakovanie prvého a druhého. Zrejme bol problém v tom, že RecNo nadobudol privisoké hodnoty. Zmenil som teda druhý riadok na:while (RecNo < RecordCount - 1) and (id <> Fields[7].AsInteger) do
No a pre zmenu po prvom riadku tabuľky nasledoval opäť prvý a ako tretí bol pôvodný druhý.Rozhodol som sa použiť funkciu Locate:
if Locate('ID', id, []) then id := -1;
Delphi nič nenašlo. Tak som to napísal takto (podľa helpu):if Locate('ID', VarArrayOf([id]), []) then id := -1;
Delphi ma odbíja tým, že nepozná VarArrayOf. V helpe nie je žiadna knižnica a vyzerá to na normálnu funkciu.Viete mi, prosím, teda niekto poradiť, prečo prvý zápis Locate nejde a prečo mi to nepozná VarArrayOf?