Einzelnen Beitrag anzeigen

Andreas Schilling

Registriert seit: 6. Sep 2006
106 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: PrimaryKey in einer Paradox-DB löschen und erstellen

  Alt 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.
  Mit Zitat antworten Zitat