Home » Tutorials » Datenbanken » SQLite3 mit Delphi und dbExpress

SQLite3 mit Delphi und dbExpress

Pragma

PRAGMA sind spezielle SQLite Befehle, um interne Informationen aus der Datenbank zu ermitteln.
PRAGMA Befehle werden wie SQL-Befehle ausgeführt.
Das Ergebnis wird wiederum im Dataset gespeichert (siehe unter „SQL SELECT ausführen“).

Beispiel PRAGMA Befehl ausführen und Ergebnis im TMemo zeigen:

...
SQLConnection.Execute(LSQL, NIL, FDLSQLResults);
FDLSQLResults.First;
While Not FDLSQLResults.EOF Do Begin
  currentLine := '';
  For i := 0 to FDLSQLResults.FieldCount - 1 do
    currentLine := currentLine + ' ' + FDLSQLResults.Fields[i].AsString;
  // Datensatz hinzufügen
  memoSQLOutput.Lines.Add(currentLine);
  FDLSQLResults.Next;
End;
...

PRAGMA database_list


Liste der Datenbanken:

LSQL := 'PRAGMA database_list;';
SQLConnection.Execute(LSQL, NIL, FDLSQLResults);

Ergebnis

0 main E:Datenropbooksropdelphisqlitebookprojectsropdelphisqlitebuecher.db

PRAGMA table_info (Tabellenname)


Tabellenstruktur ermitteln:

LSQL := 'PRAGMA table_info(Buecher);';
SQLConnection.Execute(LSQL, NIL, FDLSQLResults);

Ergebnis
Ausgebene wird folgende Feldinformation:
CID = SPALTENNUMMER
NAME = SPALTENNAME
TYPE = SPALTENTYP
NOTNULL = OB KEIN WERT ERLAUBT IST
DFLT_VALUE = VORGABEWERT
PK = OB SPALTE TEIL DES “PRIMARY KEY“ IST

(cid, name, type, notnull, dflt_value, pk)
(Spaltennr, Spaltenname, Data Type, NOT NULL, Vorgabewert, Primary Key)
0 id INTEGER 1 1
1 titel TEXT 1 0
2 autor TEXT 0 0
3 isbn TEXT 0 0

PRAGMA index_list (Tabellenname)


Liste der Indices:

LSQL := 'PRAGMA index_list(Buecher);';
SQLConnection.Execute(LSQL, NIL, FDLSQLResults);

Ergebnis

0 idx_isbn 1
1 sqlite_autoindex_Books_1 1

PRAGMA index_info (Indexname)


Indexstruktur ermitteln:

LSQL := 'PRAGMA index_info(idx_isbn);';
SQLConnection.Execute(LSQL, NIL, FDLSQLResults);

Ergebnis

0 3 isbn

PRAGMA auto_vacuum

Datenbank defragmentieren:

LSQL := 'PRAGMA auto_vacuum;';
SQLConnection.Execute(LSQL, NIL, FDLSQLResults);

Ergebnis

Es wird kein Ergebnis zurück geliefert.

PRAGMA integrity_check

Datenbank-Integrität prüfen:

LSQL := 'PRAGMA integrity_check;';
SQLConnection.Execute(LSQL, NIL, FDLSQLResults);

Ergebnis

OK oder Hinweis.