AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Ein String erzeugt ein SQL Statement?

Ein String erzeugt ein SQL Statement?

Ein Thema von NoGAD · begonnen am 16. Mai 2021 · letzter Beitrag vom 21. Mai 2021
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
325 Beiträge
 
Delphi 10.4 Sydney
 
#1

Ein String erzeugt ein SQL Statement?

  Alt 16. Mai 2021, 00:02
Datenbank: ABS_Database • Version: 7.92 • Zugriff über: ABSTable
Hallo,

folgender String ergibt beim Hinzufügen zu einem Tabellenfeld eine merkwürdige Fehlermeldung:

'"Ueber die scenische Darstellung des Goethe''schen Faust und Seydelmann''s Auffassung des Mephistopheles"'

Es erscheint folgende Fehlermeldung:

Zitat:
Erste Gelegenheit für Exception bei $75BEA6E2. Exception-Klasse EABSException mit Meldung 'End of SQL command expected, but 'schen' found at line 1, column 91 - Native error: 20260'. Prozess Project_Bibo2_2.exe (7208)


Das Tabellenfeld ist ein String, 250 Zeichen groß. Was zu viel an Text ist, wird eigentlich verworfen. (Ist momentan auch so gewollt)

Hat das schonmal jemand erlebt und kann mir erklären, was da vor sich geht?


LG Mathias
Mathias
Ich vergesse einfach zu viel.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.753 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Ein String erzeugt ein SQL Statement?

  Alt 16. Mai 2021, 08:30
Guten Morgen,

wie baust Du Dir denn Dein Insert Statement zusammen?

Code:
insert into <TableName>
values (.., :Buchbeschreibung, .., ..);

query.ParamByName('Buchbeschreibung').asString := 'Ueber die scenische Darstellung des Goethe'''schen Faust und Seydelmann'''s Auffassung des Mephistopheles';
Grüße
Klaus
Klaus

Geändert von Klaus01 (16. Mai 2021 um 09:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.098 Beiträge
 
Delphi 12 Athens
 
#3

AW: Ein String erzeugt ein SQL Statement?

  Alt 16. Mai 2021, 09:51
Grund: '', also das einfache '

PascalStrings und SQL-Strings escapen nunmal anders.

Lösung: \''

Leider empfehlen viele Delphi-Referenz durchsuchenQuoteStr (sogar Demos in der OH), was aber ebenfalls total falsch ist, da QuoteStr die Delphi-Syntax verwendet.

Jede DB-Komponente sollte irgendwo eine Escape-Funktion haben, welche man verwenden kann, denn die benutzt die SQL-Syntax der jeweiligen DB,
oder eben man arbeitet mit Parametern und erspart sich den ganzen Mist.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
325 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Ein String erzeugt ein SQL Statement?

  Alt 21. Mai 2021, 00:03
Hallo und vielen Dank für den Hinweis.

Gibt es denn noch mehr Zeichen, die hier Probleme machen können?

LG Mathias
Mathias
Ich vergesse einfach zu viel.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.098 Beiträge
 
Delphi 12 Athens
 
#5

AW: Ein String erzeugt ein SQL Statement?

  Alt 21. Mai 2021, 00:25
Ja,

aber das ist total egal, wenn man es richtig macht.


SQL-Parameter verwenden,
oder zumindestens die Escape-/Quote-Funktion der DB-Komponente.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
325 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Ein String erzeugt ein SQL Statement?

  Alt 21. Mai 2021, 00:32
Für mich als Laien: was meinst Du bitte mit SQL Parametern?

LG
Mathias
Ich vergesse einfach zu viel.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Ein String erzeugt ein SQL Statement?

  Alt 21. Mai 2021, 05:44
Hier im Forum suchenSQL-Parameter
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.098 Beiträge
 
Delphi 12 Athens
 
#8

AW: Ein String erzeugt ein SQL Statement?

  Alt 21. Mai 2021, 10:41
und siehe Post #2
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
325 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Ein String erzeugt ein SQL Statement?

  Alt 21. Mai 2021, 13:07
Hallo nochmal.

Mein Problem bezieht sich jedoch überhaupt nicht auf SQL, da ich die Werte über eine Art TTable in die Datenbank schreibe. Somit benötige ich ja gar keine SQL Parameter.

Und dennoch wird diese ominöse Fehlermeldung ausgegeben.

LG Mathias
Mathias
Ich vergesse einfach zu viel.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.098 Beiträge
 
Delphi 12 Athens
 
#10

AW: Ein String erzeugt ein SQL Statement?

  Alt 21. Mai 2021, 13:23
Dann hat wohl deine TTable einen Fehler


Aber egal.
Gibt es eine TQuery oder so?
SELECT * FROM tablename und schon kommt das Gleiche bei raus.

[edit]
Wobei, wenn die TTable schon nicht funktioniert, wieso sollte dann der Rest funktionieren?

An deiner Stelle würde ich mich mal an den Hersteller dieser Komponenten wenden, damit er den Fehler repariert.
[/edit]
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:40 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