Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi FMX - Beim speichern in eine SQL-Datenbank Fehlermeldung (https://www.delphipraxis.net/210195-fmx-beim-speichern-eine-sql-datenbank-fehlermeldung.html)

jmich 16. Mär 2022 08:29

FMX - Beim speichern in eine SQL-Datenbank Fehlermeldung
 
Hallo Delpiianer,

Im Zusammenhang mit einer SQL-Datenbank in meiner Anwendung
unter Andriod tritt folgender Fehler auf:

- unreognized Token "]" -

Habe die Anwendung mit Delphi Alexandra (FMX) erstellt.
Anwendung funktioniert auf dem Smartphone Samsung gut, außer beim
Speichern in die Datenbank. Da kommt der obengenannte Fehler.
Verwende die LiteDac-Komponente von Devart zum Einbinden der SQL.
Habe bei Devart schon mal nachgefragt, aber noch keine Antwort erhalten.

Vielleicht weiß einer von Euch woran es liegen könnte oder ist es ein
Problem der Komponente selbst?

Danke im Voraus für eure Hilfe

jmich

Klaus01 16. Mär 2022 09:34

AW: FMX - Beim speichern in eine SQL-Datenbank Fehlermeldung
 
.. kannst Du bitte die Speicherroutine zeigen?

Grüße
Klaus

jmich 16. Mär 2022 09:50

AW: FMX - Beim speichern in eine SQL-Datenbank Fehlermeldung
 
Hier meine Routine:

Delphi-Quellcode:
procedure Tfirmdaten.btn_firmpostClick(Sender: TObject);
begin
  firmdaten.firmConnection.Database := System.IOUtils.TPath.GetHomePath + PathDelim +'firmpv.dbp'; // db3 nur umbenann in dbp
   try
          firmdaten.firmConnection.Connected := True;
          firmdaten.firmConnection.Options.Direct := True;
          firmQuery.Connection := firmdaten.firmConnection;
          with firmQuery do
              begin
                Close;
                SQL.Clear;
                SQL.Text := 'INSERT INTO [firmenliste] '+
                            ' ( '+
                            ' [firmname],[firmstrasse],[firmplz],firmort],'+
                            ' [firmgewerk],[firmkontakt],[firmchef]'+
                            ' )'+
                            ' Values ('+
                            ' :frmnam, :frmstr, :frmplz, :frmort, '+
                            ' :frmgew, :frmkon, :frmchf '+
                            ' )';
                    ParamByName('frmnam').AsString := ed_firmname.Text;
                    ParamByName('frmstr').AsString := ed_firmstrasse.Text;
                    ParamByName('frmplz').AsString := ed_firmplz.Text;
                    ParamByName('frmort').AsString := ed_firmort.Text;
                    ParamByName('frmgew').AsString := cb_firmgewerk.Selected.Text;
                    ParamByName('frmkon').AsString := ed_firmkontakt.Text;
                    ParamByName('frmchf').AsString := ed_firmchef.Text;
                     ExecSQL();
              end;
   finally

      ShowMessage('Datensatz wurde neu angelegt !');
   end;
  firmdaten_laden;
end;
Gruß
Jmich

DeddyH 16. Mär 2022 09:55

AW: FMX - Beim speichern in eine SQL-Datenbank Fehlermeldung
 
Zitat:

Delphi-Quellcode:
' [firmname],[firmstrasse],[firmplz],firmort],'+

Bei firmort fehlt die öffnende Klammer.

jmich 16. Mär 2022 10:13

AW: FMX - Beim speichern in eine SQL-Datenbank Fehlermeldung
 
Vielen Dank für die Hilfe.

Vor lauter Bäumen sieht man diesen kleinen Fehler nicht.

Nochmals vielen Dank

jmich

haentschman 16. Mär 2022 10:14

AW: FMX - Beim speichern in eine SQL-Datenbank Fehlermeldung
 
...ich hätte schwören können das das am WITH liegt. :duck: :wink:

BerndS 16. Mär 2022 10:56

AW: FMX - Beim speichern in eine SQL-Datenbank Fehlermeldung
 
Aber die Meldung, die im finally gezeigt wird, sollte doch vor dem finally gemacht werden, denn egal ob ein Fehler (Exception) auftritt oder nicht, kommt diese Meldung doch so immer!!!

Sinspin 16. Mär 2022 10:59

AW: FMX - Beim speichern in eine SQL-Datenbank Fehlermeldung
 
Crosspost entwickler-ecke.de

jmich 16. Mär 2022 20:47

AW: FMX - Beim speichern in eine SQL-Datenbank Fehlermeldung
 
Frage an BerndS

Wo soll die Showmessage nach deiner Meinung hin?
Bin gerade beim Lernen und über gute Tipps freue ich mich sehr.

Gruß
Jmich

DeddyH 17. Mär 2022 06:02

AW: FMX - Beim speichern in eine SQL-Datenbank Fehlermeldung
 
Wie ist es denn so (einfach heruntergetippt, deshalb ungetestet):
Delphi-Quellcode:
function Mask(const Fieldname: string): string;
begin
  Result := Format('[%s]', [Fieldname]);
end;

// Es sieht so aus, als sei firmdaten die globale Form-Variable, deshalb besser weglassen
// oder self verwenden
procedure Tfirmdaten.btn_firmpostClick(Sender: TObject);
begin
  firmConnection.Database := System.IOUtils.TPath.GetHomePath + PathDelim +
    'firmpv.dbp'; // db3 nur umbenann in dbp
  try
    firmConnection.Connected := True;
    firmConnection.Options.Direct := True;
    firmQuery.Connection := firmConnection;
    firmQuery.Close;
    firmQuery.SQL.Text := Format('INSERT INTO %s(%s, %s, %s, %s, %s, %s, %s) ' +
      ' Values (:frmnam, :frmstr, :frmplz, :frmort, :frmgew, :frmkon, :frmchf)',
      [Mask('firmenliste'), Mask('firmname'), Mask('firmstrasse'),
      Mask('firmplz'), Mask('firmort'), Mask('firmgewerk'), Mask('firmkontakt'),
      Mask('firmchef')]);
    firmQuery.ParamByName('frmnam').AsString := ed_firmname.Text;
    firmQuery.ParamByName('frmstr').AsString := ed_firmstrasse.Text;
    firmQuery.ParamByName('frmplz').AsString := ed_firmplz.Text;
    firmQuery.ParamByName('frmort').AsString := ed_firmort.Text;
    firmQuery.ParamByName('frmgew').AsString := cb_firmgewerk.Selected.Text;
    firmQuery.ParamByName('frmkon').AsString := ed_firmkontakt.Text;
    firmQuery.ParamByName('frmchf').AsString := ed_firmchef.Text;
    firmQuery.ExecSQL();
    ShowMessage('Datensatz wurde neu angelegt !');
  except
    on E: Exception do
      ShowMessage('Fehler beim Anlegen des Datensatzes: ' + E.Message);
  end;
  firmdaten_laden;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 Uhr.
Seite 1 von 2  1 2      

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