![]() |
Re: Hilfe bei sqlite und Zeos Komponente gesucht
Damit nicht jeder immer andere Variablennamen verwendet geb ich mal einen Anfang vor.
Delphi-Quellcode:
Dabei sind
gCon := TZConnection.Create(nil);
Q := TZQuery.Create(nil); with gCon do begin Protocol := 'sqlite-3'; Database := 'asdf.db'; Connect; end; Q.Connection := gCon;
Delphi-Quellcode:
private Variablen einer der Klasse in der das ganze geschehen soll.
gCon: TZConnection;
Q: TZQuery; Die Klasse soll dann später für das Handle einer "Vokabeldatenbank" zuständig sein, sodass ich beim interface nicht mehr mit sqlite beschäftigen muss. 1. private
Delphi-Quellcode:
Wo steht der Rückgabewert und lese ich diesen aus (ins result)
function TableExists(mTable: String): Boolean;
begin Q.SQL.Add('SHOW TABLE STATUS LIKE `'+mTable+'`'); Q.ExecSQL; end; 2. gleiches Problem wie bei 1. nur das ich diesmal die Zeilen einer Tablle zählen würde Q.SQL.Add('SELECT count(*) from `'+mTable+'`'); |
Re: Hilfe bei sqlite und Zeos Komponente gesucht
Delphi-Quellcode:
function TableExists(mTable: String): Boolean;
begin Q.SQL.Add('SHOW TABLE STATUS LIKE `'+mTable+'`'); Q.Open; //wenn ein Ergebnis kommt, steht es nun auf dem ersten Datensatz, ansonsten ist EOF true while not Q.EOF do begin //soll den Wert des ersten Feldes des aktuellen Datensatzes ausgeben ShowMessage(Q.Fields[0].AsString); //nächster Datensatz Q.Next; end; Q.Close; end; |
Re: Hilfe bei sqlite und Zeos Komponente gesucht
Wenn schon add, dann vorher löschen aber besser
Delphi-Quellcode:
Zudem würde sich die Verwendung von (SQL-)Parametern anbieten.
Q.SQL.Text := 'SHOW TABLE STATUS LIKE `'+mTable+'`';
BTW.: Ohne Grundlagenwissen (Tutorials) ist die ganze Chose ein Himmelfahrtskommando! |
Re: Hilfe bei sqlite und Zeos Komponente gesucht
Delphi-Quellcode:
Jetzt meckert er beim Q.Open aber das er ZDbcSqLiteUtils.pas nicht findet. Ich hab auch schon nachgeschaut, ich hab zwar eine ZDbcSqLiteUtils.dcu aber keine ZDbcSqLiteUtils.pas
procedure TVocabularyBook.TableExists(mTable: String);
begin Q.SQL.Text := 'SHOW TABLE STATUS LIKE `'+mTable+'`;'; Q.Open; //wenn ein Ergebnis kommt, steht es nun auf dem ersten Datensatz, ansonsten ist EOF true while not Q.EOF do begin //soll den Wert des ersten Feldes des aktuellen Datensatzes ausgeben ShowMessage(Q.Fields[0].AsString); //nächster Datensatz Q.Next; end; Q.Close; end; Ich benutze übrigens Delphi 2010 mit zeos 7.0.0 alpha. |
Re: Hilfe bei sqlite und Zeos Komponente gesucht
Die DCU wird dann von einer anderen Delphiversion stammen
|
Re: Hilfe bei sqlite und Zeos Komponente gesucht
nein die hab ich selbst kompiliert ...
|
Re: Hilfe bei sqlite und Zeos Komponente gesucht
Zitat:
|
Re: Hilfe bei sqlite und Zeos Komponente gesucht
danke, behoben
Jetzt kommt der Fehler "SQL Error: SQL logic error missing database" |
Re: Hilfe bei sqlite und Zeos Komponente gesucht
was mach ich nun?
|
Re: Hilfe bei sqlite und Zeos Komponente gesucht
Delphi-Quellcode:
Das zweite Q.Open (Zeile 7) verursacht ebenfalls den Fehler "SQL Error: SQL logic error missing database". Woran liegt das?
Q.SQL.Text := 'SELECT count(*) FROM sqlite_master WHERE name="main";';
Q.Open; if Q.Fields[0].AsInteger > 0 then begin Q.Close; Q.SQL.Text := 'SELECT v_build FROM main;'; Q.Open; if not Q.EOF then b := vBuild > Q.FieldByName('v_build').AsInteger else b := true; if b then UpdateSQL() end else begin Q.Close; Q.SQL.LoadFromFile('C:\Users\Marvin\Desktop\structure.sql'); Q.Open; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz