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.