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,