Sql Query und Dbf
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Sql Query und Dbf
Mit Zeos geht das so:
- TZConnection: Für Datenbankverbindung, Auswahl Protocol, Host, Port, User, Password, usw.
- TZQuery / TZTable: Connection setzen, SQL reinschreiben (Wenn man komplexe Abfragen in einer Query hat (JOINs) und man Datensätze editieren möchte, so wird noch ein TZUpdateSQL benötigt).
- TDatasource, wie in Delphi
- TDBEdit, TDBGrid, ...
So ein Hexenwerk ist das doch auch nun wirklich nicht und geht gleich wie bei anderen Komponenten auch.
Übrigens, die Zeos Komponente kann man auch in Delphi installieren/nutzen.
- TZConnection: Für Datenbankverbindung, Auswahl Protocol, Host, Port, User, Password, usw.
- TZQuery / TZTable: Connection setzen, SQL reinschreiben (Wenn man komplexe Abfragen in einer Query hat (JOINs) und man Datensätze editieren möchte, so wird noch ein TZUpdateSQL benötigt).
- TDatasource, wie in Delphi
- TDBEdit, TDBGrid, ...
So ein Hexenwerk ist das doch auch nun wirklich nicht und geht gleich wie bei anderen Komponenten auch.
Übrigens, die Zeos Komponente kann man auch in Delphi installieren/nutzen.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 32
- Registriert: Mi 20. Mär 2013, 13:44
- OS, Lazarus, FPC: Win7 HP x64
- CPU-Target: Bit
Re: Sql Query und Dbf
also habe es jetzt soweit hinbekommen, doch obwohl ich den Pfad der SQlite3.dll Datei in LibaryLocation angegeben habe und auch auf mehreren Standorten probiert habe, wird folgende Meldung angegeben: None of the dynamic libaries can be found or is not loadable. Ich habe schon danach gegoogelt doch ich konnte keinen Fehler bei der Reihenfolge finden. Hatte schon jemand dieses Problem?
HostName: localhost
Port:=1 --> liegt dort vielleicht der Fehler?
User: Jochim
Passwort: passwort
LibaryLocation: L:\Info\Lazarus\Datenbanken\erste arbeit zeos\sqlite3.dll --> auch schon probiert mit: C:\Windows\system\sqlite3.dll und C:\Windows\system32\sqlite3.dll doch nichts hat funktioniert.
Und ne so schwer ist es auch nicht denke doch ich habe noch einen Wurm drinne. Außerdem habe ich mir die Reihenfolge des erstellen schon paar mal angeguckt und meine überprüft.
Jochim
PS: Habe aber leider kein Delphi.
Protocol:=sqlite-3TZConnection: Für Datenbankverbindung, Auswahl Protocol, Host, Port, User, Password, usw.
HostName: localhost
Port:=1 --> liegt dort vielleicht der Fehler?
User: Jochim
Passwort: passwort
LibaryLocation: L:\Info\Lazarus\Datenbanken\erste arbeit zeos\sqlite3.dll --> auch schon probiert mit: C:\Windows\system\sqlite3.dll und C:\Windows\system32\sqlite3.dll doch nichts hat funktioniert.
Und ne so schwer ist es auch nicht denke doch ich habe noch einen Wurm drinne. Außerdem habe ich mir die Reihenfolge des erstellen schon paar mal angeguckt und meine überprüft.
Jochim
PS: Habe aber leider kein Delphi.
Re: Sql Query und Dbf
bei SQLite reicht schon das Protokoll, der Rest wird mehr oder weniger ignoriert.Jochim hat geschrieben:TZConnection: Für Datenbankverbindung, Auswahl Protocol, Host, Port, User, Password, usw.
aber die DLL muss die gleiche Bitbreite haben, check mal 32/64bit
hde
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Sql Query und Dbf
Hier gibt es die 64-Bit SQLite DLL. Ist zwar nicht ganz aktuell, aber relativ neu und funktioniert gut:
http://sourceforge.net/p/zeoslib/code-0 ... ite/Win64/
Die 32-Bit SQLite DLL kann aktuell immer von http://www.sqlite.org geladen werden.
In der TZConnection wird als "Database" bei SQLite die Datenbankdatei angegeben. Wenn die Datei nicht existiert so wird SQLite die automatisch anlegen.
Mit einer TZQuery kann ein SQL Befehl "CREATE TABLE IF NOT EXISTS <Name> ([Spaltendeklarationen])" und dann .Execute eine neue Tabelle in der Datenbankdatei erzeugt werden.
http://sourceforge.net/p/zeoslib/code-0 ... ite/Win64/
Die 32-Bit SQLite DLL kann aktuell immer von http://www.sqlite.org geladen werden.
In der TZConnection wird als "Database" bei SQLite die Datenbankdatei angegeben. Wenn die Datei nicht existiert so wird SQLite die automatisch anlegen.
Mit einer TZQuery kann ein SQL Befehl "CREATE TABLE IF NOT EXISTS <Name> ([Spaltendeklarationen])" und dann .Execute eine neue Tabelle in der Datenbankdatei erzeugt werden.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 725
- Registriert: Do 27. Sep 2012, 00:07
- OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
- CPU-Target: x86_64-win64
- Wohnort: Hamburg
Re: Sql Query und Dbf
Ich glaube dein Problem ist wie mein Vorredner geschreiben haben falsche DLL version. Lösche alle DLL"s und packe in Windows\System32-Ordner 32Bit-Version von Sqlite.dll und 64Bit-Version in Systemordner für 64Bit DLL"s. Oder kopiere passende DLL in dein Programm-Ordner.
Für Sqlite muss man bei TZConnection nur folgende Eigenschaften angeben, alles andere ist Optional oder wird nicht Verwendet. Ich würde auch erst nur diese benutzen umzu testen ob alles funktioniert:
Versuche auch erstmal schon vorhandene Datenbank zu verbinden umzu testen ob alles funktioniert.
Datenbanken kann man mit diesen Programmen erstellen:
http://reddog.s35.xrea.com/wiki/TkSQLite.html : Einfach zu Benutzen
http://www.dbsoftlab.com/database-browser/overview.html: Umfangreich
Für Sqlite muss man bei TZConnection nur folgende Eigenschaften angeben, alles andere ist Optional oder wird nicht Verwendet. Ich würde auch erst nur diese benutzen umzu testen ob alles funktioniert:
Code: Alles auswählen
TZConnection.Protocol:='sqlite-3';
TZConnection.Databasename:='X:\DeinOrdner\DeinSqlite.db';
//und natürlich TZConnection.Connected-Eigenschaft umzu verbinden.
Datenbanken kann man mit diesen Programmen erstellen:
http://reddog.s35.xrea.com/wiki/TkSQLite.html : Einfach zu Benutzen
http://www.dbsoftlab.com/database-browser/overview.html: Umfangreich
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Sql Query und Dbf
Ist nicht nötig, man kann auch eine Verbindung auf eine nicht existierende Datei herstellen:Soner hat geschrieben:Versuche auch erstmal schon vorhandene Datenbank zu verbinden umzu testen ob alles funktioniert.
TZConnection.Protocol:='sqlite-3';
TZConnection.Database:='C:\DateiDieEsNichtGibt.sq3';
TZConnection.Connect;
Wenn dann kein Fehler kommt, stimmt die DLL Version (32/64 Bit) und ZEOS findet auch die DLL. Dann funktionieren auch die SQL Befehle mit TZQuery.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 32
- Registriert: Mi 20. Mär 2013, 13:44
- OS, Lazarus, FPC: Win7 HP x64
- CPU-Target: Bit
Re: Sql Query und Dbf
Nun bin ich schon mal ein Schritt weiter bei der TZQuery angekommen. Ich verwende folgendes Tutorial: http://wiki.freepascal.org/Zeos_tutorial/de (Erstellen Ihrer Zeos anwendung)MmVisual hat geschrieben:Soner hat geschrieben:Wenn dann kein Fehler kommt, stimmt die DLL Version (32/64 Bit) und ZEOS findet auch die DLL. Dann funktionieren auch die SQL Befehle mit TZQuery.
Doch beim Active setzen der TZquery kommt die Meldung: SQL error: SQL logic error or missing database.
Ich habe nun die Vermutung, dass es daran liegt das ich keine database vorher erstellt habe doch in der TZConnection.Database steht: K:\Info\Lazarus\Datenbenkprogrammiereung\Zeos\MyTable.sq3.
Danke für eure hilfe. Jochim.
Re: Sql Query und Dbf
Was hast du denn in der TZQuery unter SQL eingetragen?
hde
hde
-
- Beiträge: 32
- Registriert: Mi 20. Mär 2013, 13:44
- OS, Lazarus, FPC: Win7 HP x64
- CPU-Target: Bit
Re: Sql Query und Dbf
Ich habe dort eingetragen: SELECT * FROM MyTabelhde hat geschrieben:Was hast du denn in der TZQuery unter SQL eingetragen?
Und meine db heißt ja auch MyTabel. Muss dort überhaupt schon etwas eingetragen seit?
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Sql Query und Dbf
Nur weil die DB MyTable heißt, gibt es darin noch lange keine Tabelle die MyTable heißt. Bei SQLite kann in einer einzigen DB Datei viele Tabellen existieren.
Somit: Erst mal eine Tabelle mit der "CREATE TABLE" Syntax anlegen.
TZQuery.SQL.Text := '.....';
Ausgeführt wird der Befehl dann mit TZQuery.ExecSQL;
Somit: Erst mal eine Tabelle mit der "CREATE TABLE" Syntax anlegen.
TZQuery.SQL.Text := '.....';
Ausgeführt wird der Befehl dann mit TZQuery.ExecSQL;
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 32
- Registriert: Mi 20. Mär 2013, 13:44
- OS, Lazarus, FPC: Win7 HP x64
- CPU-Target: Bit
Re: Sql Query und Dbf
Ich habe nun die Table mit:MmVisual hat geschrieben:Erst mal eine Tabelle mit der "CREATE TABLE" Syntax anlegen.
TZQuery.SQL.Text := '.....';
Ausgeführt wird der Befehl dann mit TZQuery.ExecSQL;
Code: Alles auswählen
CREATE TABLE IF NOT EXISTS product (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
producer TEXT NOT NULL,
name TEXT NOT NULL,
category TEXT NOT NULL,
wohnort TEXT NOT NULL,
size INTEGER NOT NULL);
Jochim
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Sql Query und Dbf
Poste doch mal deinen Quellcode + deine SQLite Datenbankdatei.
EleLa - Elektronik Lagerverwaltung - www.elela.de
Re: Sql Query und Dbf
mal generell:
eine TZQuery ist, wie der Name schon sagt, für Abfragen, also select's da.
für andere Aufgaben nimmt man ExecuteSQl
eine TZQuery ist, wie der Name schon sagt, für Abfragen, also select's da.
für andere Aufgaben nimmt man ExecuteSQl
-
- Beiträge: 32
- Registriert: Mi 20. Mär 2013, 13:44
- OS, Lazarus, FPC: Win7 HP x64
- CPU-Target: Bit
Re: Sql Query und Dbf
Das war doch meine aller erste Frage. Also jetzt noch mal für blöde, wie mich, um das thema so langsam mal abzuschließen:hde hat geschrieben:mal generell:
eine TZQuery ist, wie der Name schon sagt, für Abfragen, also select's da.
- 1. ZConnection auf Form setzen
2.Database eintragen
3.LibaryLocation eintragen
4.Protocol auf sqlite-3 ändern
5.Connected auf True setzen
6.Zquery auf Form setzen
7.Zconnection bei connection eintragen
8.Datasource auf form setzen und bei ZQuery.DataSource eintragen
9.DB erzeugen --> wie erzeuge ich dann, mit welcher Komponente oder Kode die DB?
10.Zquery Active setzen
11.In ZQuery.SQL kommen abfragen hinein.
Re: Sql Query und Dbf
// späterJochim hat geschrieben: 1. ZConnection auf Form setzen // ja
2.Database eintragen // ja
3.LibaryLocation eintragen // ja
4.Protocol auf sqlite-3 ändern // ja
5.Connected auf True setzen // zur Laufzeit
6.Zquery auf Form setzen // ja
7.Zconnection bei connection eintragen // ja, bei ZQuery1
8.Datasource auf form setzen // ja und bei ZQuery.DataSource eintragen // nein
8a. in Datasource Dataset auf ZQuery1 setzen
9.DB erzeugen --> wie erzeuge ich dann, mit welcher Komponente oder Kode die DB?
9.Createstatement in ZQery1.SQL eintragen
10.Zquery Active setzen // nein
10a.Zur Laufzeit: ZQuery1.ExecSQL
11.In ZQuery.SQL kommen abfragen hinein.