Skip to main content
Skip table of contents

DBIndex()

DBIndex() – Index erstellen



Die Funktion erstellt einen neuen Index für eine Tabelle. Falls dieser erfolgreich erstellt wurde, ist der neue Index sofort aktiv.

Hinweis


Die übergebene Tabelle muss aktiv sein.


ParameterBeschreibung

aExpression:C

Datenbankfeld oder Ausdruck mit dem indiziert werden soll

aIndexName:C

Name der Indexdatei ohne Extension

aCondition:C

Bedingung, die erfüllt sein muss, damit ein Datensatz in den neuen Index aufgenommen wird
default = Leerstring

aOptions:N

Index-Optionen
default = 0
Um Optionen zu kombinieren, müssen die Zahlen logisch mit _OR() verknüpft werden:
1- UNIQUE(eindeutig)
2- COMPOUND(zusammengesetzt)
4- DESCENDING(absteigend)

aTable:O

Bezugstabelle;
default = Standard-Tabelle


Rückgabewert


Logisch / Boolean - Index erfolgreich erstellt

Beispiel


CODE
| oTable |

//******************************************************************************
// Tabelle erstellen
//******************************************************************************

function CreateTable()
   | cPfad, aTableName, aFields |

   startseq,
      cPfad := mbedefault + '\TransaktionsLog',
      if not ForceDirectories(cPfad) then
         SetError('Verzeichnis <' + cPfad + '> kann nicht erstellt werden'),
      endif,

      aTableName := cPfad + '\Transaktionen.ADT',
      aFields    := {{'DATUMZEIT', 'C', 19, 0},
                     {'USER',      'C',  3, 0},
                     {'ID',        'N',  8, 0}},
      Result     := nil,
      Result     := DBCreate(aTableName,  aFields),
      if empty(Result) then
         SetError('Tabelle <' + aTableName + '> wurde nicht erstellt'),
      else
         WriteLn("Tabelle erfolgreich erstellt"),
      endif,

      Result.Active := true,    // Tabelle muss für die Indizierung aktiv sein!
      if DBIndex('ID', 'ID', '', 2, Result) then
         WriteLn("Index erfolgreich erstellt"),
      else
         WriteLn("Index konnte nicht erstellt werden"),
      endif,
   onerror,
      SetError('"CreateTransLogTables()": ' + GetErrorText()),
   stopseq,
end,

startseq
   oTable := CreateTable(),

   oTable.CbAppend(),
   oTable:DatumZeit := FormatDateTime('YYYY-MM-DD HH:NN:SS', Now()),
   oTable:User      := c_usr,
   oTable:ID        := 1,
   oTable.CbPost(),

   oTable.Active    := false,
always
   destroyObject(oTable),
stopseq,
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.