webForumDet fria alternativet

Databasfråga i Delphi

3 svar · 356 visningar · startad av urban_hahne

urban_hahneMedlem sedan maj 2003153 inlägg
#1

Hej. Jag vill leta fram ett antal poster från ett reg. i access. Registret inehåller ca 30tusen poster så jag vill inte "snurra" igenom för att hitta de poster jag vill ha ut.
Jag försöker använda gotokey men problemet är att gotokey alltid går till första träffen vid varje ny sökning. Jag har försökt att sätta bookmark vid första träffen och sedan gå dit innan nästa gotokey men sökningen startar i alla fall från början på reg.
Hur gör man.

procedure TTidForm.SokArbTidClick(Sender: TObject);
var found:boolean;
datum:string;
SavePlace: TBookmark;
begin
clearStringBox;
with DataModule1.stampTidTable do
begin
//leta fram 2 stämplingar på detta anstNr och datum;
Datum:=SelectForm.nosteckOnDate(DatumEdit.text);
Active:=true;
First;
DisableControls;
EditKey;
FieldByName('X1EMNO').AsString:=SelectForm.anstNrTemp;
FieldByName('X1DTSC').AsString:=Datum;
GotoKey;
SavePlace:=GetBookmark;
TidString.cells[0,1]:=DataModule1.stampTidTableX1DTSC.AsString;
TidString.cells[1,1]:=DataModule1.stampTidTableX1CTME.AsString;
TidString.cells[2,1]:=DataModule1.stampTidTableX1TTTPE.AsString;
TidString.cells[3,1]:=DataModule1.stampTidTableX1FRTM.AsString;
TidString.cells[4,1]:=DataModule1.stampTidTableX1TOTM.AsString;

  GotoBookmark(SavePlace);
  Next;
  GotoKey;
  TidString.cells\[0,2\]:=DataModule1.stampTidTableX1DTSC.AsString;
  TidString.cells\[1,2\]:=DataModule1.stampTidTableX1CTME.AsString;
  TidString.cells\[2,2\]:=DataModule1.stampTidTableX1TTTPE.AsString;
  TidString.cells\[3,2\]:=DataModule1.stampTidTableX1FRTM.AsString;
  TidString.cells\[4,2\]:=DataModule1.stampTidTableX1TOTM.AsString;
  EnableControls;
end;

end;

DannyMedlem sedan juli 200412 913 inlägg
#2

Kan du inte använda GotoNearest för att hoppa vidare? Har ingen aning om just det där, men jag kollade lite i D7 hjälpen...

urban_hahneMedlem sedan maj 2003153 inlägg
#3

Nop. GotoNearest har samma effekt. dvs den verkar alltid sökar från början. GotoNearest betyder att den söker efter en träff som är lika eller nästan lika med den sökta frasen.
Tack i alla fall. Hoppas någon annan kan komma med fler förslag.

HardrockerMedlem sedan nov. 2003310 inlägg
#4

Det enklaste är väl att använda en TQuery och få ut posterna med hjälp av sql.

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)