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.
Parameter | Beschreibung |
---|---|
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 |
aOptions:N | Index-Optionen |
aTable:O | Bezugstabelle; |
Rückgabewert
Logisch / Boolean - Index erfolgreich erstellt
Beispiel
| 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,