Avatar billede madshenrik Nybegynder
17. januar 2001 - 01:27 Der er 5 kommentarer og
1 løsning

tabel.locate

Jeg har en tabel og en netop opdateret record. denne record er opdateret via sql. Det næste jeg ønsker er så at i det øjeblik jeg opdatere denne record skal jeg også sætte cursoren i tabellen til at pege på denne record således at de dbedits der har denne til source viser indholdet af den netop opdaterede record. Koden er nogenlunde som følger.
  with Notatdatamodul do
    begin
          QueryUpdate.Close;
          QueryUpdate.sql.Clear;
          QueryUpdate.sql.add(\'Update Notatbase\');
          QueryUpdate.sql.add(\'set Notatbase.overskrift =:OVERSKRIFT, Notatbase.nogleord =:NOGLEORD, Notatbase.detail =:DETAIL\');
          QueryUpdate.sql.add(\'where Notatbase.ident = :IDENT\');
          QueryUpdate.ParamByName(\'OVERSKRIFT\').ASSTRING :=(EditUpdateOverskrift.TEXT);
          QueryUpdate.ParamByName(\'NOGLEORD\').ASSTRING :=(EditUpdatenogleord.TEXT);
          QueryUpdate.ParamByName(\'DETAIL\').ASSTRING :=(ReditUpdateDetail.TEXT);
          QueryUpdate.ParamByName(\'IDENT\').ASINTEGER := STRTOINT(Edit1.TEXT);
          QueryUpdate.ExecSQL;


    end;
hovedtabel.locate(Den aktuelle record????????)

Mads
Avatar billede martinlind Nybegynder
17. januar 2001 - 09:02 #1
Da du bruger SQL og TQuery skal du søge den ud med Locate(<KEY>,<KeyValue>) det er den eneste løsning ellers skal du bruge en TTable, men jeg vil nu anbefale dig at fortsætte med TQuery, den er meget mere flexibel i længden.
Avatar billede madshenrik Nybegynder
17. januar 2001 - 11:29 #2
Ja det har jeg sådan set forsøgt men jeg kan ikke få delhpi til at æde det. Problemet er så bare at de dbedit felter det skal vise indholdet af den lokaliserede record har en ttable som source derfor vil jeg gerne lave det med ttable. Martinlind du skulle vel ikke have et eksempel fordi jeg kan ikke få compileren til at æde den locate funktion fra hjælpefilen.

Mads
Avatar billede martinlind Nybegynder
17. januar 2001 - 11:36 #3
Prøv at skrive :
if MyTable.Locate(\'IDENT\',[117]) then ShowMessage(\'Found !\') else ShowMessage(\'Not Found\')

Dette burde virke.
Avatar billede madshenrik Nybegynder
17. januar 2001 - 11:36 #4
Har netop fundet dette i hjælpe filen og det virker fint. Ellers tak for hjælpen.

hovedtabel.SetKey;
hovedtabel.Fields[0].AsString := Edit1.Text;
hovedtabel.GotoKey;

Mads
Avatar billede martinlind Nybegynder
17. januar 2001 - 11:37 #5
fra onlinehjælpen :

Locate returns True if it finds a matching record, and makes that record the current one. Otherwise Locate returns False.


/Martin
Avatar billede martinlind Nybegynder
17. januar 2001 - 11:39 #6
Det er også meget udemærket, sålænge du har en \"Key\" locate virker også på felter der ikke er index/key på.

/Martin
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester