Hi liebe community,
ich habe momentan ein kleines problem.
Untzwa frage ich mit SQLite die tabelle sqlite_master ab um die vorhandenen tabellen zu erhalten.
Code:
function GetDB(dbC: TSQLite3Connection;dbQ: TSQLQuery;dbT: TSQLTransaction): TStringList;
var
slist, tname: TStringList;
n: Integer;
begin
slist:= TStringList.Create;
tname:= TStringList.Create;
dbQ.SQL.Text:='SELECT name FROM sqlite_master WHERE type = ''table''';
dbQ.Open;
dbQ.First;
while dbQ.EOF = false do
begin
if not (dbQ.FieldByName('name').AsString = 'sqlite_sequence') then
tname.Add(dbQ.FieldByName('name').AsString);
dbQ.Next;
end;
dbQ.Close;
For n := 0 to tname.Count-1 do
begin
dbQ.SQL.Text:='SELECT * FROM ''' + tname[n] + '''';
Hier tritt der fehler auf
Code:
dbQ.ExecSQL;
dbQ.Open;
dbQ.First;
while dbQ.EOF = false do
begin
if dbQ.FieldByName('chg').AsString = '1' then
slist.Add(GetDBset(tname[n],dbQ.FieldByName('id').AsString,dbC,dbQ,dbT));
if dbQ.FieldByName('chg').AsString = '2' then
slist.Add(GetDBset(tname[n],dbQ.FieldByName('id').AsString,dbC,dbQ,dbT));
dbQ.Next;
end;
end;
end;
Hier sollten nun in die Stringlist die namen der tabellen eingetragen worden sein ..
also so:
user
artikel
company
customers
customers_adr
customers_tel
rechnung
rechnung_artikel
machines
ich weiß nicht ob es hilft aber hier nochmal der aufbau der sqlite_master tabelle welche ich abrufe (diese wird automatisch mit der datenbank erstellt!)
# | type | name | tbl_name | Rootpage | SQL |
1 | table | user | user | 2 | CREATE TABLE 'us |
2 | index | sqlite_autoindex | user | 3 | |
3 | index | sqlite_autoindex | user | 4 | |
4 | table | artikel | artikel | 5 | CREATE TABLE 'ar |
5 | index | sqlite_autoindex | artikel | 6 | |
6 | table | company | company | 7 | CREATE TABLE 'co |
7 | table | sqlite_sequence | sqlite_sequence | 8 | CREATE TABLE sql |
8 | table | customers | customers | 9 | CREATE TABLE 'cu |
9 | index | sqlite_autoindex | customers | 10 | |
10 | table | customers_adr | customers_adr | 13 | CREATE TABLE 'cu |
11 | index | sqlite_autoindex | customers_adr | 14 | |
12 | table | customers_tel | customers_tel | 15 | CREATE TABLE 'cu |
13 | index | sqlite_autoindex | customers_tel | 16 | |
14 | table | rechnung | rechnung | 17 | CREATE TABLE 're |
15 | index | sqlite_autoindex | rechnung | 18 | |
16 | table | rechnung_artikel | rechnung_artikel | 20 | CREATE TABLE 're |
17 | index | sqlite_autoindex | rechnung_artikel | 21 | |
18 | table | machines | machines | 22 | CREATE TABLE 'ma |
19 | index | sqlite_autoindex | machines | 23 | |
20 | index | sqlite_autoindex | machines | 24 | |
21 | trigger | tuserchg | user | 0 | CREATE TRIGGER t |
22 | trigger | tartikelchg | artikel | 0 | CREATE TRIGGER t |
23 | trigger | tcompanychg | company | 0 | CREATE TRIGGER t |
24 | trigger | tcustomerschg | customers | 0 | CREATE TRIGGER t |
25 | trigger | tcustomers_adrch | customers_adr | 0 | CREATE TRIGGER t |
26 | trigger | tcustomers_telch | customers_tel | 0 | CREATE TRIGGER t |
27 | trigger | trechnungchg | rechnung | 0 | CREATE TRIGGER t |
28 | trigger | trechnung_artike | rechnung_artikel | 0 | CREATE TRIGGER t |
29 | trigger | tmachineschg | machines | 0 | CREATE TRIGGER t |
Hierbei wird mir allerdings sobald ich die Funktion aufrufe (kommpiliren funktionirt problemlos) der fehler ausgegeben:
DatabaseERROR "no such table 'Benutzername'"
dies stehl allerdings nicht in der tabelle noch frage ich die datenbank nach betutzername, ich will doch die spalte name haben)
und die einzigste stelle die mir einfällt wo benutzername vorkommt ist im login fenster, bzw. jetzt zum testn als username (global als guser hinterlegt!)
Ich hoffe jemand weiß was los ist ich stecke jetzt sein 2 tagen fest und kriege es nicht raus...
Schonmal danke im vorraus an alle die helfen können!