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
Pentium 80486
(Gast)

n/a Beiträge
 
#1

AW: String eintragen der Apostroph enthält

  Alt 18. Mai 2012, 16:54
---
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

AW: String eintragen der Apostroph enthält

  Alt 18. Mai 2012, 17:01
Du könntest es mal mit Parametern probieren.
Das ist nicht nur sicherer, sondern umgeht auch solche Probleme mit Quotes

http://www.mail-archive.com/sqlite-u.../msg27004.html
  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:07
Du könntest es mal mit Parametern probieren.
Das ist nicht nur sicherer, sondern umgeht auch solche Probleme mit Quotes

http://www.mail-archive.com/sqlite-u.../msg27004.html
Das ist mir eig. in der Logik zu "kompliziert", weil ich viel mit PHP arbeite und da Params nicht gewöhnt bin *g*.
Aber ich tüftel dann mal da rum, danke .

Edit:
@Luckie
Danke, das hatte ich schon gefunden. Aber so wie ich das lese, löst das nicht mein Problem... (oder ich verstehe es falsch).

Geändert von Satyr (18. Mai 2012 um 17:19 Uhr)
  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: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
 
#5

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
 
#6

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
 
#7

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
 
#8

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