AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Wie fluchtet man Hochkomma im SQL?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie fluchtet man Hochkomma im SQL?

Ein Thema von QuickAndDirty · begonnen am 7. Sep 2005 · letzter Beitrag vom 29. Sep 2005
Antwort Antwort
Seite 1 von 2  1 2      
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#1

Wie fluchtet man Hochkomma im SQL?

  Alt 7. Sep 2005, 14:49
Datenbank: Alle • Zugriff über: BDE
Genau wie der Der titel meine Frage .
Wie fluchtet man Hochkomma im SQL?
Delphi-Quellcode:
Folgender Datensatz soll eingefügt werden
q.SQL.TEXT := 'Insert into Bla
(TExtfeld1,textfeld2)
(
' + QuotedStr(' Nickname: ''Otto'' ') + ','+
                   QuotedStr(' Nickname2: ''Uwe'' ') + ')';
Also wie Speicher ich 'uwe' statt uwe?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Wie fluchtet man Hochkomma im SQL?

  Alt 7. Sep 2005, 14:53
Nimm Parameter. Dann ist das Escaping-Problem gelößt - Du brauchst nichts zu escapen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Wie fluchtet man Hochkomma im SQL?

  Alt 7. Sep 2005, 14:56
Was soll denn dabei rauskommen. Wieso speicherst du " Nickname: " mit.

Übrigens die korrekte Syntax für Insert lautet
insert into Tabelle (F1,F2...) values (V1, V2...)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#4

Re: Wie fluchtet man Hochkomma im SQL?

  Alt 7. Sep 2005, 15:04
Ja
es geht darum das Alle Strings im Programm gesucht werden und in
einer Tabelle gespeichert werden sollen dazu kann ich keine Parameter gebrachen
,weil die ÜbersetzungsUnit schon geschrieben ist.
Nun kommt leider in einigen Strings im Programm ein Hochkomma vor
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Wie fluchtet man Hochkomma im SQL?

  Alt 7. Sep 2005, 15:08
Lies doch deine Strings in eine Variable, und ersetzte die ' durch '' mit

V := StringReplace (V,'''','''''',[rfReplaceAll]) ;
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#6

Re: Wie fluchtet man Hochkomma im SQL?

  Alt 7. Sep 2005, 15:16
Ja das hatte ich auch gedacht, nur ist unserem 450.000 Zeilen Programm
ab und zu auch mal ein SQL der seine String s und Datums in Doppelhockomma fast.
weshalb bereits folgende Schleife aus " "" macht. (kann auch andere Gründe haben)

Delphi-Quellcode:
  while Pos('"', ts2) > 0 do
  begin
    PosZP := Pos('"', ts2);
    insert('"', ts2, PosZP);
    ts := ts + copy(ts2, 1, PosZP + 1);
    delete(ts2, 1, PosZP + 1);
  end;
Hab in PHP Foren von \' gelesen aber das ist wohl
weils ein c Dialekt ist oder?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Wie fluchtet man Hochkomma im SQL?

  Alt 7. Sep 2005, 15:35
QuotedStr setzt eine String in hochkomma und verdoppelt ausserdem jedes Hochkomma innerhalb des Strings.
Also alles paletti.
Du musst nur korrekten Sourcecode hinschreiben:
Delphi-Quellcode:
text1 := ' Nickname: ''Otto'' ';
text2 := ' Nickname2: ''Uwe'' ';
q.SQL.TEXT := 'Insert into Bla (TExtfeld1,textfeld2) Values ('+
              QuotedStr(text1) + ','+ QuotedStr(text2) + ')';
q.ExecSQL;
Andreas
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#8

Re: Wie fluchtet man Hochkomma im SQL?

  Alt 7. Sep 2005, 16:49
meinst du das Quotedstring('''');
dem SQL Server '''' übergibt

also ein ' innerhalb eines SQL genauso
wie in delhi gefluchtet wird in dem er verdoppelt '' wird???

Also 'insert into bla (bla2) Values('' '' '')'

das würde ein leerzeichen ein Hochkomma und einleerzeichen
in eintextfeld einfügen????
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#9

Re: Wie fluchtet man Hochkomma im SQL?

  Alt 8. Sep 2005, 07:31
Wie wäre es mit dem ASCII Zeichen:

'insert into blabla values ('#39'TEst'#39')'; oder eben wie schon angedeutet QuotedStr:

'insert into blabla values ('+QuotedStr('TEst')+')'; oder auch ein Formatstring:
Format('Insert into blabla values(%s)','Test');
von der 3-fach Angabe von ' halte ich nichts, weil das irgend wann echt nicht mehr lesbar ist. Zudem meiner Meinung ziemlich fehleranfällig...

Grüße
Lemmy

P.S.: Was meinst Du eigentlich mit dem Wort "gefluchtet"?
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#10

Re: Wie fluchtet man Hochkomma im SQL?

  Alt 8. Sep 2005, 07:53
Ich denke mit gefluchtet bezieht er sich auf die so geannten Escape-Sequenzen, wie man sie zB bei XML kennt. Ich nutze eigentlich auch immer #39, da ich damals ein Programm übernommen habe wo alles mit ''' etc gelöst war. Ich hab sowas von geflucht!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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