Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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?

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny