Registriert seit: 6. Sep 2006
106 Beiträge
Delphi 10.3 Rio
|
Re: PrimaryKey in einer Paradox-DB löschen und erstellen
28. Nov 2006, 07:23
Ich kenne nur den Weg über die BDE-Komponenten TTable. Vielleicht läßt sich das aber verwenden.
Delphi-Quellcode:
Uses
DB, DBTables, SysUtils;
Function ChkANAMNESE(DName: String): Boolean;
{Die Funktion ChkANAMNESE erzeugt die Datei ANAMNESE.DB
falls diese noch nicht existiert.
Ist das Ergebnis True, so wurde die Tabelle neu erstellt.}
Function ChkIdxANAMNESE(DName: String): Boolean;
{Die Funktion ChkIdxANAMNESE erzeugt die Indizes der Datei ANAMNESE.DB
falls diese noch nicht existieren.
Ist das Ergebnis True, so wurden die Indizes neu erstellt.}
Implementation
Function ChkANAMNESE;
Begin
Result:=False;
If Not FileExists(DName) Then
With TTable.Create( Nil) Do
Begin
TableName:=DName;
With FieldDefs Do
Begin
Add(' AnamneseID',TFieldType(14),0,False);
Add(' PR_ID',TFieldType(3),0,True);
Add(' Datum',TFieldType(9),0,True);
Add(' Parameter',TFieldType(1),30,False);
Add(' Ergebnis_ID',TFieldType(3),0,True);
Add(' LE_ID',TFieldType(3),0,True);
Add(' Text',TFieldType(16),25,False);
Add(' Bemerkungen',TFieldType(1),100,False);
Add(' LetzteVeraenderungUser',TFieldType(1),8,True);
Add(' LetzteVeraenderungZeit',TFieldType(11),0,True);
Add(' RecordStatus',TFieldType(3),0,False);
End; {end with FieldDefs}
CreateTable;
Result:=True;
Free;
ChkIdxANAMNESE(DName);
End; {end with TTable}
End; {end Function}
Function ChkIdxANAMNESE;
Begin
Result:=False;
With TTable.Create( Nil) do
Begin
TableName:=DName;
Exclusive:=True;
Open;
IndexDefs.Clear;
AddIndex(' ',' AnamneseID', []+[ixPrimary]+[ixUnique]);
AddIndex(' PRIDDatum_Index',' PR_ID;Datum', []+[ixCaseInsensitive]);
Close;
Free;
End; {end with TTable}
End; {end Function}
End.
|