I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Hvis ID er en primærnøgle, så kan du jo bare prøve at indsætte den og så ignorere en eventuel exception vha. en try-except blok. Er det ikke den normale tilgang? En Locate ville ikke være sikker i et flerbruger miljø idet andre kan have indsat ID uden at din TTable vidste noget om det. Jeg ser ikke anden (sikker) løsning end den jeg foreslår.
Du burde også skippe TTable for det er en forkert komponent at bruge. En TTable bruger meget mere hukommelse end en TQuery, idet indekser og den slags også føres med når den åbnes.
Desuden er det min mening altid at bruge SQL frem for TTable. Eventuelt kopiere data over i et DataSet af en eller anden art. Jeg syntes der var en TCustomDataSet i min palette - men jeg kan sguette finde den.
Et svar. Hvis du prøver mit forslag, så kan du køre programmet og se hvad exception der bliver raised - evt hvilken fejlcode der kastes.
En Exception har nemlig en ErrorCode (hedder måske noget andet), som er koden for "duplicate key"
Altså noget i denne retning:
try Table.Insert; Table.FieldByName('ID').AsString := 'HRC'; Table.Post; except on e: EDatabaseException do begin if e.ErrorNo <> 12345 then // not duplicate key raise; end; end;
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.