/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Cancel indsat post
Fra : Michael Sørensen


Dato : 15-02-10 22:24

HEj.

Jeg har forsøgt med diverse onBeforeXXX og onAfterXXX (post, insert osv)
uden at have fundet den korrekte metode.

En clientdataset forbundet til en database med et felt, der er primærnøgle.

Når der indsættes en ny linie i min grid, der er forbundet med
clientdatasettet, så indsætter jeg automatisk 3 værdier i nogle af
postens felter( Dette er en form for standardforslag til slutbrugeren,
så felterne ikke er tomme fra starten). Det gør jeg med

Procedure Tform1.clientdataset1AfterInsert(Dataset: TDataSet);
Begin
Clientdataset1('Felt1'):= 'indhold';
...
End;

Vælger jeg efter at have indsat en ny linie at indtaste en værdi i
feltet, der har primær nøgle, er der ingen problemer. Posten "bogføres"
som den skal.

Vælger jeg derimod at forlade den nyligt indsatte linie uden at indtaste
yderligere end det ovenfor automatisk indtastede, så kommer en violation
key error, forståeligt nok.

Havde jeg valgt IKKE at indsætte de automatiske indsætninger, ville
posten blot have været automatisk annulleret, når jeg forlod den nye
linie uden at indtatte noget. Men idet jeg har indtastet de automatiske
værdier, så er min tanke, at jeg manuelt skal annullere posten (som jeg
ikke ønsker, når jeg ikke har indtastet en værdi i primær feltet.

Derfor har jeg prøvet med en onBeforePost, onBeforeINsert, onAfterPost
osv. uden a finde den rigtige kombination.

Eksempel herunder:

procedure Tform1.clientdatasetBeforePost(DataSet: TDataSet);
begin
If (clientdataset['Felt1'] = 'indhold') and
(clientdataset['Felt2'] = null) and
....
clientdataset1.delete;
end;

 
 
Søg
Reklame
Statistik
Spørgsmål : 177409
Tips : 31962
Nyheder : 719565
Indlæg : 6407779
Brugere : 218874

Månedens bedste
Årets bedste
Sidste års bedste