Thema: Delphi Index zuweisen

Einzelnen Beitrag anzeigen

hacki

Registriert seit: 15. Nov 2002
96 Beiträge
 
Delphi XE5 Professional
 
#2
  Alt 2. Mai 2003, 15:36
Hallo WerWurm,

habe das Erstellen und Handling mit Paradox-Tabellen über SQL gelöst. Dazu habe ich folgende Funktion geschrieben und mit einem TQuery-Objekt (keißt hier im Quelltext DB_CreateQuery) verknüpft:

Code:
procedure TMainForm.ExecSQLStatement( SQLStatement : String );
begin
 DB_CreateQuery.Active := FALSE;
 DB_CreateQuery.SQL.Clear;

 DB_CreateQuery.SQL.Add( SQLStatement );

  try
   DB_CreateQuery.Prepare;
   try
    DB_CreateQuery.ExecSQL;
   except
    DB_CreateQuery.SQL.Clear;
    MessageDlg('Problem bei der SQL-Ausführung (Error by ExecSQL), Routine ExecSQLStatement in Main.pas' +#13+#13+
               '"'+ SQLStatement + '"', mtError, [mbOK], 0);
   end;
  except
   DB_CreateQuery.SQL.Clear;
   MessageDlg('Problem bei der SQL-Ausführung (Error by Prepare), Routine ExecSQLStatement in Main.pas' +#13+#13+
               '"'+ SQLStatement + '"', mtError, [mbOK], 0);
  end;

 DB_CreateQuery.Active := FALSE;
end;
Dann kann ich das Erstellen der Tabellen und Indexe als SQL-Befehl folgendermaßen im Programm los werden:

Tabelle anlegen:
Code:
ExecSQLStatement('CREATE TABLE Uebungen' +
       '( '+
          'UebClient             INTEGER, '+
          'UebNummerManuell      INTEGER, '+
          'UebBibliothek         CHARACTER(1), '+
          'UebBereich            CHARACTER(30), '+
          'UebBereichNummer      SMALLINT, '+
          'UebAnzahlMin          SMALLINT, '+
          'UebAnzahlMax          SMALLINT, '+
          'UebTrainingsPhase     SMALLINT, '+
          'UebTPhaseString       CHARACTER(16), '+
          'UebSchwierigkeit      SMALLINT, '+
          'UebDauer              NUMERIC(10,2), '+
          'UebBezeichnung        CHARACTER(60), '+
          'UebZiel               BLOB(240,1), '+
          'UebBeschreibung       BLOB(240,1), '+
          'UebVariation          BLOB(240,1), '+
          'UebFeldDaten          BLOB(50,1), '+
          'PRIMARY KEY (UebClient)'+
       ' )' );
und das Anlegen von Sekundär Indizes:

Code:
ExecSQLStatement('CREATE INDEX'+
                   ' UBereich ON ''Uebungen.db'' (UebBereichNummer)' );
Ich hoffe, das hilft Dir und Du kannst das verwenden.

Grüsse
Hacki
Es ist nicht gesagt, daß es besser wird, wenn es anders wird! Wenn es aber besser werden soll, muß es anders werden! ** There are 10 different types of people in this world; those who understand binary numbers and those who don’t !
  Mit Zitat antworten Zitat