![]() |
Datenbank: SQLite • Version: 3 • Zugriff über: libSQL
Einfache Datenbank mit libSQL
Ich habe mir die Datenbankkomponenten
![]() Ich habe wirklich schon die Suchfunktion gequält, Google bemüht und versuch mir das Beispielprogramm anzusehen. Es hat aber nicht gereicht. Ist libSQL so kompliziert? Sollte ich vielleicht eine andere Komponente benutzen? Danke, Marcel |
Re: Einfache Datenbank mit libSQL
Wenn sich keiner mit libSQL auskennt nutze ich auch gerne andere Komponenten. Ich brauche nur ein kleines Beispiel als Einstig, an dem ich mich dann orientieren kann.
Danke, Marcel |
Re: Einfache Datenbank mit libSQL
...Hallo
mit libSQl kann ich Dir leider auch nicht helfen... :( ...wenns um den Einstieg geht... Firebird Tutorial... habe den Link nicht parat... findest du aber über die Suche. ... in Zusammenhang mit Firebird habe ich mit den Zeos Komponenten gearbeitet. ... SQL Tutorial ![]() :!: zum Thema welche Datenbank, gibt es hier genug Antworten und Vorschläge ![]() :hi: |
Re: Einfache Datenbank mit libSQL
Mit libsql kenne ich mich leider auch nicht aus.
Ich greife über ![]() [Edit] UUPS, D7 PE übersehen :wall: [/Edit] |
Re: Einfache Datenbank mit libSQL
D7 Personal hat IMHO doch keine Unterstützung für TDataset und alle davon abgeleiteten Komponenten !!
Damit wird das Arbeiten mit Datenbanken zu einer ganz üblen Quälerei. Wenn in deiner Komponenten Palette also "Datensteuerung" und "Datenzugriff" nicht vorhanden sind, kann man die Sache wirklich vergessen. |
Re: Einfache Datenbank mit libSQL
Auch ich kenne libSQL nicht. Ich benutze den
![]() EDIT: Dein Scheitern könnte unter Umständen mit dem neuen Release von SQLite zusammenhängen. Siehe Update vom August 2007 beim Wrapper. libSQL wurde ja zuletzt Mitte 2006 geupda..ändert. |
Re: Einfache Datenbank mit libSQL
ups, mein fehler. habe damals nicht so recht auf meiner delphiversion geachtet. ich habe die delphi 7 enterprise version, die natürlich datenbanken unterstützt.
ich habe mich jetzt durch unendlich viele seiten geklickt und bekomme es einfach nicht auf die reihe mit delphi eine datenbank zu erstellen, auf die ich sql-befehle anwenden kann. entweder sind die tutorials zu lückenhaft oder zu unverständlich. jedenfalls kriege ich es einfach nicht hin. zuletzt habe ich mich mit zeos und firebird embedded auseinandergesetzt. klingt ganz gut, aber laufen will es trotzdem nicht :/ kann mir keiner helfen? marcel |
Re: Einfache Datenbank mit libSQL
Also wie gesagt ich arbeite schon länger mit ZEOS und SQLite und alles ohne Probs.
Wo hast Du denn das Problem??? Verbindung mit SQLite??? Erstellen einer DB??? oder was :gruebel: Kopiere die sqlite.dll z.B. in deinen Projektpfad (z.B. D:\Meine Projekte\Mein DBProjekt\) Platziere die ZEOS-Connection Komponente auf eine Form.
Delphi-Quellcode:
Hoffe das hilft Dir ein wenig...
procedure Tfrm_Main.Create;
var sql_tmp: TZQuery; begin with MyCon do begin // ZEOS Connection Protocol := 'sqlite-3'; Database := 'MyDB.db'; // evtl. mit Pfadangaben; DB wird erstellt, wenn nicht vorhanden Connect; // verbinden end; // Erstellen von Tabellen sql_tmp := TZQuery.Create(self); with sql_tmp do begin Connection := MyCon; // Tabelle 1 SQL.Add('CREATE TABLE [tblirgendwas] ('); SQL.Add('[ti_ID] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,'); SQL.Add('[ti_Text] VARCHAR(255) NULL,'); SQL.Add(');'); // Tabelle 2 SQL.Add('CREATE TABLE [tblwasanderes] ('); SQL.Add('[tw_ID] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,'); SQL.Add('[tw_Title] VARCHAR(255) NULL,'); SQL.Add('[tw_Description] TEXT NOT NULL,'); SQL.Add('[tw_Category] INTEGER NULL,'); SQL.Add('[tw_Keyword] VARCHAR(255) NULL'); SQL.Add(');'); // Ausführen ExecSQL; end; FreeAndNil(sql_tmp); end; [edit=Phoenix]Tippfehler im Auftrag von OP korrigiert. Mfg, Phoenix[/edit] |
Re: Einfache Datenbank mit libSQL
Alternativ zu ZEOS gibts auch noch
![]() |
Re: Einfache Datenbank mit libSQL
@ Ghostwalker
du meintest bestimmt die hier: ![]() ich schaue mir die komponenten mal an... @ OG Karotte danke, das ist doch schon mal ein anfang. habe ein zconnection und ein zquery hinzugefügt und den quelltext für meine bedürfnisse geändert.
Delphi-Quellcode:
beim testen bekomme ich aber leider eine fehlermeldung:
procedure TfrmMain.FormCreate(Sender: TObject);
begin with ZConnection do begin Protocol := 'sqlite-3'; Database := 'database.db'; Connect; end; with ZQuery do begin SQL.Add('CREATE TABLE [tblTracks] ('); SQL.Add('[ID] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,'); SQL.Add('[Artist] VARCHAR(255) NULL,'); SQL.Add('[Album] VARCHAR(255) NULL,'); SQL.Add('[Track] INTEGER NULL,'); SQL.Add('[Title] VARCHAR(255) NULL,'); SQL.Add(');'); ExecSQL; end; end;
Code:
ist die zeos-komponente nicht richtig installiert, oder woran liegt das?
quelldatei nicht gefunden: ZDbcSqLiteUtils.pas
marcel |
Re: Einfache Datenbank mit libSQL
Hast Du die Pfade zu den Zeos-Quellcode-Dateien unter Tools - Optionen - Bibliothek (also Bibliothek bzw. Suchpfad) eingetragen?
|
Re: Einfache Datenbank mit libSQL
ja das hat gefehlt. jetzt habe ich aber eine neue fehlermeldung:
Code:
Was ist denn da jetzt schon wieder falsch? ich habe mir mal die erstellte datenbank mit einem programm angesehen, die ist in ordnung.
Im Projekt mMP3.exe ist eine Execption der Klasse EZSQLException aufgetreten. Meldung: 'SQL Error: near ")": sytax error'
marcel |
Re: Einfache Datenbank mit libSQL
Wo genau tritt denn der Fehler auf???
Beim Erstellen der Tabellen oder kommt da später noch irgend etwas??? |
Re: Einfache Datenbank mit libSQL
...laß mal die [ ] weg...
|
Re: Einfache Datenbank mit libSQL
ohne [] entsteht der gleiche fehler, es wird aber keine ordentliche datenbank mehr erstellt. die entstandene datei kann ich nicht öffnen.
marcel |
Re: Einfache Datenbank mit libSQL
Zitat:
@holle: Ist der von Dir gepostete Code auch der der den Fehler verursacht, oder kommt der Fehler evtl. an ein anderen Stelle??? |
Re: Einfache Datenbank mit libSQL
hier die komplette unit. bis zum showMessage(''); kommt er gar nicht.
Delphi-Quellcode:
marcel
unit uMain;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ZConnection, DB, ZAbstractRODataset, ZAbstractDataset, ZDataset, ZAbstractTable; type TfrmMain = class(TForm) ZConnection: TZConnection; ZQuery: TZQuery; ZTable: TZTable; procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var frmMain: TfrmMain; implementation {$R *.dfm} procedure TfrmMain.FormCreate(Sender: TObject); begin with ZConnection do begin Protocol := 'sqlite-3'; Database := 'database.db'; Connect; end; with ZQuery do begin SQL.Add('CREATE TABLE [tblTracks] ('); SQL.Add('[ID] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,'); SQL.Add('[Artist] VARCHAR(255) NULL,'); SQL.Add('[Album] VARCHAR(255) NULL,'); SQL.Add('[Track] INTEGER NULL,'); SQL.Add('[Title] VARCHAR(255) NULL,'); SQL.Add(');'); ExecSQL; end; showMessage('') ; with ZTable do begin TableName := 'tblTracks'; Active := true; end; end; end. |
Re: Einfache Datenbank mit libSQL
Kein Wunder, dein SQL ist
SQL-Code:
CREATE TABLE [tblTracks] (
[ID] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, [Artist] VARCHAR(255) NULL, [Album] VARCHAR(255) NULL, [Track] INTEGER NULL, [Title] VARCHAR(255) NULL, --oh schau mal, ein satzzeichen ); |
Re: Einfache Datenbank mit libSQL
:wall: :wall: :wall: AAARRRGGGHHH, 37 mal den Code gelesen und 37 mal dieses blöde Komma übersehen :wall: :wall: :wall:
[Edit] und das Ding ist sogar in meinem Beispiel mit drin :wall: :duck: :wall: (gibt's hier kein "Ich nehm' mir'n Strick und erschiess mich"- Smiley [/Edit] [Edit] Fehler (Komma) im Beitrag #8 wurde entfernt (Danke Phoenix)[/Edit] |
Re: Einfache Datenbank mit libSQL
verdammter copy and waste quelltext :wall: :wall: :wall:
DANKE |
Re: Einfache Datenbank mit libSQL
und wofür sind jetzt die []? wenn ich datensätze hinzufügen möchte wie schreib ich das dann? so, oder mit []?
Code:
Marcel
INSERT INTO tblTracks(ID, Artist, Album, Track, Title) VALUES (NULL, 'Die Ärzte', 'Jazz ist anders', 9, 'Junge');
|
Re: Einfache Datenbank mit libSQL
Mach das besser mit Parametern:
Delphi-Quellcode:
ZQuery.SQL := 'INSERT INTO tblTracks(Artist, Album, Track, Title) VALUES (:artist, :album, :track, :title)';
ZQuery.ParamByName('artist').AsString := 'Die Ärzte'; ZQuery.ParamByName('album').AsString := 'Jazz ist anders'; ZQuery.ParamByName('track').AsInteger := 9; ZQuery.ParamByName('title').AsString := 'Junge'; ZQuery.ExecSQL; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:52 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