AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi String eintragen der Apostroph enthält
Thema durchsuchen
Ansicht
Themen-Optionen

String eintragen der Apostroph enthält

Ein Thema von Satyr · begonnen am 18. Mai 2012 · letzter Beitrag vom 18. Mai 2012
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

AW: String eintragen der Apostroph enthält

  Alt 18. Mai 2012, 17:26
soo kompliziert ist das auch nicht:
fuunc.ASQLite3Query1.SQL.Add('INSERT INTO mails (absender, mail, datum) VALUES (:abs_txt,:txt_txt,:datum_txt)'); je nachdem mit welcher Schnittstelle Du arbeitest vaariiert die Parameterübergabe etwas:
Delphi-Quellcode:
fuunc.ASQLite3Query1.Parameter.ParameterbyName('txt_txt').asstring:=MeinText;
fuunc.ASQLite3Query1.Parameter.ParameterbyName('abs_txt').asstring:=MeinABS;
fuunc.ASQLite3Query1.Parameter.ParameterbyName('datum_txt').asstring:=MeinDatum;
ggf. müsste da statt .asstring .value stehen und parameters könnten auch params heißen. schau mal nach.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

AW: String eintragen der Apostroph enthält

  Alt 18. Mai 2012, 17:36
Du musst, wenn du nicht mit Parametern arbeitest, die Strings aber unbedingt escapen, da man sonst sehr leicht SQL-Injections machen kann! Wenn du dies tun würdest, hättest du auch das Problem mit dem Apostroph nicht.

Was unter Delphi die Standard-Methode zum escapen ist, weiß ich nicht, vielleicht ist QuotedStr ja schon die Lösung.

Würde dir aber auch eindeutig zu der Parameter-Variante raten... damit bist du zu 100% sicher unterwegs und gewinnst außerdem eine Menge Übersicht.
  Mit Zitat antworten Zitat
Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: String eintragen der Apostroph enthält

  Alt 18. Mai 2012, 17:38
soo kompliziert ist das auch nicht:
fuunc.ASQLite3Query1.SQL.Add('INSERT INTO mails (absender, mail, datum) VALUES (:abs_txt,:txt_txt,:datum_txt)'); je nachdem mit welcher Schnittstelle Du arbeitest vaariiert die Parameterübergabe etwas:
Delphi-Quellcode:
fuunc.ASQLite3Query1.Parameter.ParameterbyName('txt_txt').asstring:=MeinText;
fuunc.ASQLite3Query1.Parameter.ParameterbyName('abs_txt').asstring:=MeinABS;
fuunc.ASQLite3Query1.Parameter.ParameterbyName('datum_txt').asstring:=MeinDatum;
ggf. müsste da statt .asstring .value stehen und parameters könnten auch params heißen. schau mal nach.

Gruß
K-H
Danke, soweit bin ich langsam. Mit .value funktioniert es wie es soll *s*.
Allerdings nur ein Mal. Wenn ichs dann direkt wieder versuche, bekomme ich ne kryptische Zugriffsverletzung.
Durch das "free" im finally Part, dürfte doch aber nichts im Speicher hängen bleiben, oder?
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: String eintragen der Apostroph enthält

  Alt 18. Mai 2012, 17:45
Würdest du einmal etwas Code spendieren?
Mir fehlt vor allem ein .Close
Delphi-Quellcode:
fuunc.ASQLite3Query1.Close;
 fuunc.ASQLite3Query1.SQL.Clear;
 fuunc.ASQLite3Query1.SQL.Add('INSERT INTO mails (absender, mail, datum) VALUES ('''+abs+''', '''+txt+''', '''+datum+''')');
 fuunc.ASQLite3Query1.ExecSQL;
fuunc.ASQLite3Query1.Close;
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: String eintragen der Apostroph enthält

  Alt 18. Mai 2012, 18:10
Sorry, Telefon.

Der Code der bei mir 1 Mal funktioniert aber dann eine Zugriffsverletzung macht ist:

Delphi-Quellcode:
with fuunc.ASQLite3Query1 do
try
  RawSQL := False;
  SQL.Text := 'INSERT INTO mails (absender, mail, datum) VALUES (:absender,:mail,:datum)';
  Params.ParamByName('absender').Value := abs;
  Params.ParamByName('mail').Value := txt;
  Params.ParamByName('datum').Value := date;
  ExecSQL;
  SQL.Clear;
  Params.Clear;
  Close;
finally
  Free;
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#6

AW: String eintragen der Apostroph enthält

  Alt 18. Mai 2012, 18:15
Das ist ja anscheinend eine Komponente, wieso gibst Du die frei? Dafür ist doch im Normalfall der Owner zuständig. Und ein Close nach ExecSQL macht keinen Sinn, lass Dir da nix einreden.
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
Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: String eintragen der Apostroph enthält

  Alt 18. Mai 2012, 18:21
Weil ich "Angst" habe das ich den Arbeitsspeicher zumülle, wenn ich da nix freigebe. Kann das nicht passieren?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#8

AW: String eintragen der Apostroph enthält

  Alt 18. Mai 2012, 18:41
Das kommt jetzt darauf an. Hast Du sie zur Entwurfszeit auf das Formular gepackt oder zur Laufzeit erzeugt?
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
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 07:55 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