Skip to content

Commit 0a87a73

Browse files
committed
feat: show virtual, stored and hidden columns in SQLite
Refs #1432
1 parent 3c518ad commit 0a87a73

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

source/dbconnection.pas

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6095,7 +6095,7 @@ function TSQLiteConnection.GetTableColumns(Table: TDBObject): TTableColumnList;
60956095
// Todo: include database name
60966096
// Todo: default values
60976097
Result := TTableColumnList.Create(True);
6098-
ColQuery := GetResults('SELECT * FROM '+QuoteIdent(Table.Database)+'.pragma_table_info('+EscapeString(Table.Name)+')');
6098+
ColQuery := GetResults('SELECT * FROM '+QuoteIdent(Table.Database)+'.pragma_table_xinfo('+EscapeString(Table.Name)+')');
60996099
while not ColQuery.Eof do begin
61006100
Col := TTableColumn.Create(Self);
61016101
Result.Add(Col);
@@ -6107,6 +6107,11 @@ function TSQLiteConnection.GetTableColumns(Table: TDBObject): TTableColumnList;
61076107
Col.DefaultText := '';
61086108
Col.OnUpdateType := cdtNothing;
61096109
Col.OnUpdateText := '';
6110+
case StrToIntDef(ColQuery.Col('hidden'), 0) of
6111+
1: Col.Invisible := True;
6112+
2: Col.Virtuality := 'VIRTUAL';
6113+
3: Col.Virtuality := 'STORED';
6114+
end;
61106115
ColQuery.Next;
61116116
end;
61126117
ColQuery.Free;
@@ -6377,7 +6382,7 @@ function TSQLiteConnection.GetTableKeys(Table: TDBObject): TTableKeyList;
63776382
begin
63786383
Result := TTableKeyList.Create(True);
63796384
ColQuery := GetResults('SELECT * '+
6380-
'FROM '+QuoteIdent(Table.Database)+'.pragma_table_info('+EscapeString(Table.Name)+') '+
6385+
'FROM '+QuoteIdent(Table.Database)+'.pragma_table_xinfo('+EscapeString(Table.Name)+') '+
63816386
'WHERE pk!=0 ORDER BY pk');
63826387
NewKey := nil;
63836388
while not ColQuery.Eof do begin

0 commit comments

Comments
 (0)