AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

libSQL und SQlite

Ein Thema von sexmagic · begonnen am 24. Sep 2006 · letzter Beitrag vom 24. Sep 2006
Antwort Antwort
sexmagic

Registriert seit: 16. Sep 2006
56 Beiträge
 
Delphi 2006 Professional
 
#1

libSQL und SQlite

  Alt 24. Sep 2006, 14:11
Datenbank: SQLite • Version: 3 • Zugriff über: libsql
Hallo Freunde,

ich habe ein Probelm mit der Verwendung von libsql in verbindung mit sqlite3.

Ich bin noch neu in Delphi und benötige hier einen Tip da ich nichts finde das es mir so erklärt damit ichs auch verstehe.

Die Suche hat mich auch nicht weitergebracht.
Referenz hab ich auch keine wirklich brauchbare gefunden was ich sehr schade finde, es gibt sehr viel gute Dinge für Delphi nur die Referenzen sind sehr sehr schlecht für Anfänger.

Also zurück zum Probelm.

Ich habe ein Form erstellt, auf diesem habe ich mit ein TLiteDB gezogen.
Anschliessend habe ich 4 Editfelder erstellt und einen Button hinzugefügt.

Dan kam ich zur Datenbank, diese habe ich mit SQLite Administrator erstellt (Sehr praktisches Programm).
SQL-Code:
CREATE TABLE "kunden" (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"name" VARCHAR(60) NOT NULL,
"leistung" vARCHAR(60) NOT NULL,
"dokumente" inTEGER NOT NULL,
"datum" INTEGER DEFAULT 'CURRENT_TIMESTAMPNOT NULL
);
So nun habe ich im FormCreate eine Instanz der DB Klasse erstellt.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  //Datenbankverbindung erstellen
  db:=TLiteDB.Create(Self, 'database.s3db');
end;

end.
Anschliessend habe ich im Button ein Query erstellt das mir einen Datensatz in die DB einfügen soll.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if not DB.Query ('insert into kunden (name, leistung, dokumente) values (' + Edit1.Text + ', ' + Edit2.Text +' , ' + Edit3.Text + ') ') then
    ShowMessage('DB error: '+ DB.ErrorMessage);
  db.Free;
end;
Wenn ich das nun ausführe bekomme ich immer einen Fehler:
No such column: Edit1

Warum bekomme ich diesen Fehler, das Feld wird ja durch die Felder vorher definiert, also name, leistung, dokumente und hinten sind ja nur die Values drin.

Ich kapiere das Libsql nicht ganz und eine gute Referenz hab ich eben nicht gefunden.

Vielleicht wäre jemand so nett und könte mir kurz erklären woran das liegt.

Vielen Dank für die Hilfe

SM
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: libSQL und SQlite

  Alt 24. Sep 2006, 14:44
Herzlich willkommen in der Delphi-PRAXiS, sexmagic.

Wenn du dir das erzeugte SQL-Statement vor der Ausführung angeschaut hättest, dann wäre dir vielleicht aufgefallen, dass der Default-Inhalt von Edit1 ohne die notwendigen Hochkommata eingefügt wurde - soll aber als Literal übergeben werden:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  ins
    = 'insert into kunden (name, leistung, dokumente) '
    + 'values (%s, %s, %d)'
    ;
var
  stmt: String;
  n: Integer;
begin
  n := StrToIntDef(Edit3.Text, 0);
  stmt := Format(ins, [QuotedStr(Edit1.Text), QuotedStr(Edit1.Text), n]);
  if not DB.Query (stmt) then
    ShowMessage('DB error: '+ DB.ErrorMessage);
  db.Free;
end;
Getippt und nicht getestet.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
sexmagic

Registriert seit: 16. Sep 2006
56 Beiträge
 
Delphi 2006 Professional
 
#3

Re: libSQL und SQlite

  Alt 24. Sep 2006, 15:31
Super ich bin auch zu blöd, warum hab ich mir das das SQL nicht als String ausgeben lassen!!!

QuotedStr funktioniert alles super.

Vielen herzlichen Dank für deine schnelle hilfe!

grüsse

SM
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz