Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Problem mit SQL und FDB (https://www.delphipraxis.net/125167-problem-mit-sql-und-fdb.html)

daredd 1. Dez 2008 22:10

Datenbank: Firebird • Version: 2.1.1 • Zugriff über: IbExpert

Problem mit SQL und FDB
 
Hallo,

ich möchte einen Wert in meine Tabelle hinzufügen. Bin da voll der der Noob (wie sich rausgestellt hat :-D).
Jedefalls habe ich folgenden code:

Delphi-Quellcode:
procedure TFormMain.AddClick(Sender: TObject);
begin
FormData.FBLDataset1.SQL.Add('INSERT INTO tabelle (id) VALUES (1)');
   FormData.FBLDataset1.Active := True;
       if ClientDataSet1.Active then ClientDataSet1.Close;
          ClientDataSet1.Open;
end;
und ich bekommen folgende Fehlermeldung wenn ich den Button Add geklickt habe:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt holisticwellness.exe ist eine Exception der Klasse EFBLError mit der Meldung 'Dynamic SQL Error
SQL error code = -104
Token unknown - line 2, column 1
INSERT' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------

Komischerweise funktioniert aber das Anzeigen der Tabelle im TDBGrid einwandfrei mit:
Delphi-Quellcode:
procedure TFormMain.ShowClick(Sender: TObject);

begin
FormData.FBLDataset1.SQL.Add('select * from tabelle');
   FormData.FBLDataset1.Active := True;
       if ClientDataSet1.Active then ClientDataSet1.Close;
          ClientDataSet1.Open;
end;
Liegt muss ich vorher etwas einstellen damit ich daten in die Tabelle über ein Programm einfügen kann?
Bin da echt voll der Noob! Später will ich das man Text aus einem TDBEdit in eine Tabelle einfügen kann, aber da bin ich noch weit weg von.

THX

mkinzler 1. Dez 2008 22:12

Re: Problem mit SQL und FDB
 
Delphi-Quellcode:
FormData.FBLDataset1.SQL.Text := 'INSERT INTO tablle (id) VALUES (1);';
FormData.FBLDataset1.ExecSQL

daredd 1. Dez 2008 22:27

Re: Problem mit SQL und FDB
 
Er kann ExexSQL nicht finden. ???

[DCC Fehler] MainUnit.pas(62): E2003 Undefinierter Bezeichner: 'ExecSQL'

mkinzler 1. Dez 2008 22:29

Re: Problem mit SQL und FDB
 
Was für Komponenten verwendest du?
Heisst vielleicht auch .Execute() o.ä.

daredd 1. Dez 2008 22:44

Re: Problem mit SQL und FDB
 
Ich benutze FBLib, und es gibt dort nur ein .ExecuteAction() oder .Edit wie ich sehe. Aber welche TBasicAction soll in die Klammern von der ExecuteAction? Wenn es überhaupt das richtige ist.

daredd 2. Dez 2008 12:43

Re: Problem mit SQL und FDB
 
Ich hänge immer noch am selben Problem fest, vielleicht war es gestern einfach schon zu spät und jetzt sind ein paar mehr online, zur Mittagspause! :-D

Ich bin schon am überlegen doch die IBX-Komponenten zu verwenden (für FDB unter Firebird 2.1.1) weil ich denke das es dafür mehr tips im web gibt, tips für FBLX gibt es kaum, und mit Zeos habe ich schon probleme beim installieren der packages.

Was ist eigentlich mit FBLpX?

mkinzler 2. Dez 2008 12:50

Re: Problem mit SQL und FDB
 
laut Doku ist diese Komponente ein Nachkömmling von TDataSet und müsste ExecSQL also kennen.

daredd 2. Dez 2008 12:53

Re: Problem mit SQL und FDB
 
komisch tuts bei mir aber nicht! :wall:

kennst du FIBPlus? ist das vielleicht besser bzw. auch einfacher?

DeddyH 2. Dez 2008 12:57

Re: Problem mit SQL und FDB
 
Wenn es noch ein bisschen Zeit hat, schaue ich zu Hause mal nach (gegen 18:00).

daredd 2. Dez 2008 13:02

Re: Problem mit SQL und FDB
 
ja das wäre nicht schlecht, aber ich wurschtel mich gerade durch die seite:
http://www.devrace.com/en/fibplus/ ff.

und muss sagen das ich wahrscheinlich doch lieber fibplus nehme? oder ratet ihr davon ab.

Sagen wir es so, ich möchte die Datenbank später auf einen Server packen und die soll dann für bis zu 100.000 nutzer gleichzeitig abrufbar sein.
Am anfang sind es erst max. 10 aber dannach immer mehr.

mkinzler 2. Dez 2008 13:03

Re: Problem mit SQL und FDB
 
FIBPlus oder IBDAC

daredd 2. Dez 2008 13:04

Re: Problem mit SQL und FDB
 
FIBPlus meinte ich

also die datenbank soll dann für mehr und mehr user online zugänglich sein, und einwandfrei funktioniern (zugriffszeit etc.).
Bin ich da mit eine .fdb überhaupt gut dabei? oder soll ich lieber MySQL verwenden?

mkinzler 2. Dez 2008 13:08

Re: Problem mit SQL und FDB
 
Ich würde FireBird MySQL immer vorziehen, allein schon wegen des Lizenzierungsprblems.
Ich verwende IBDAC als Zugrifffskomponenten

daredd 2. Dez 2008 14:41

Re: Problem mit SQL und FDB
 
Also ich sehe gerade sowohl das IBDAC als auch das FIBPlus sind später mit nur mit Lizenzsen nutzbar (kommerziell).
Welche von den beiden ist besser?

Oder sind beide gleich gut.

mkinzler 2. Dez 2008 14:43

Re: Problem mit SQL und FDB
 
Kann man so nicht sagen, welche besser ist. FIBPlus ist wohl etwas schneller. IBDAC sind dafür cachend ( man kann die Verbindung zum Server trennen)

daredd 2. Dez 2008 14:49

Re: Problem mit SQL und FDB
 
Achso, also das Programm verbindet sich kurz mit dem Server nimmt sich die Werte die es braucht aus der Datenbank und kann dann "offline" weiterarbeiten.
Mit meinem Programm soll man nur Online arbeiten können (also wenn die Datenbank dann später mal auf einen server gepackt wird).

mkinzler 2. Dez 2008 14:52

Re: Problem mit SQL und FDB
 
Das ist eine Option. Normalerweise arbeitet man natürlich online

daredd 2. Dez 2008 14:58

Re: Problem mit SQL und FDB
 
Und wieso bevorzugst du IBDAC? Ist es einfacher, weil du sagtest FIBplus ist schneller.

mkinzler 2. Dez 2008 15:29

Re: Problem mit SQL und FDB
 
Ich habe mich halt für IBDAC entschieden, kann ich dir gar nicht mehr sagen warum :gruebel:

alex517 2. Dez 2008 16:06

Re: Problem mit SQL und FDB
 
Zitat:

Zitat von mkinzler
IBDAC sind dafür cachend ( man kann die Verbindung zum Server trennen)

Geht in FIBPlus ebenfalls mit CachedUpdates.

alex

DeddyH 2. Dez 2008 17:08

Re: Problem mit SQL und FDB
 
Obwohl FBLib ja wohl nicht mehr zur Debatte steht: TFBLDataset hat wirklich keine Methode ExecSQL (oder die Sichtbarkeit wurde verringert), dafür kann man dann aber ein TFBLParamDsql nehmen.

haentschman 7. Dez 2008 10:38

Re: Problem mit SQL und FDB
 
Hallo...

ist zwar schon ein paar Tage her, aber mir ist folgendes aufgefallen:
Delphi-Quellcode:
procedure TFormMain.AddClick(Sender: TObject);
begin
FormData.FBLDataset1.SQL.Add('INSERT INTO tabelle (id) VALUES (1)');
   FormData.FBLDataset1.Active := True;
       if ClientDataSet1.Active then ClientDataSet1.Close;
          ClientDataSet1.Open;
end;
...mit jedem Click auf Add fügst du dem SQL String immer das selbe dazu. Spätestens nach dem 2. Mal ist dein SQL String garantiert nicht mehr ein gültiger.
...ersetze mal SQL.Add durch SQL.Text (ohne Klammern)
...oder davor ein SQL.Clear

:hi:

[edit]
:oops: siehe Post #2
[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:08 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