AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi xe2 und #39 =ZWEI Hochkommas
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi xe2 und #39 =ZWEI Hochkommas

Ein Thema von Ykcim · begonnen am 17. Sep 2012 · letzter Beitrag vom 8. Okt 2012
Antwort Antwort
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#1

AW: Delphi xe2 und #39 =ZWEI Hochkommas

  Alt 17. Sep 2012, 21:21
Hallo Zusammen,

vielen Dank für die Antworten.

Ich greife auf den MySQL-Server via der mysql.pas zu und habe dafür drei Proceduren (connect, ExecQuery und disconnect).

Wenn ich eine query zusammenbastel, und ich möchte in einer where-Anweisung nach einem Text suchen, muss der für den MySQL-Server in Hochkommas stehen.

Beispiel:

select * from Tabelle where Name='Ykcim'

In meinem Delphi-Programm sieht das dann so aus:
query:='select * from Tabelle where Name='+#39+'Ykcim'+#39;

oder wenn Yckim in einer Variable steht:
query:='select * from Tabelle where Name='+#39+Variable+#39;

Das klappte ja auch wunderbar in TurboDelphi. Aber in xe2 werden an der Stelle von #39 zwei Hochkommas gesetzt.

Getestet habe ich das, indem ich den Wert der Variablen "query" ausgelesen habe. Ich habe der Variable aus Spaß mal nur den "Wert" #39 zugewiesen, dann werden auch zwei Hochkommas gesetzt. Das ist dann kein Gänsfüßchen ", sondern wirklich zwei Hochkommas.

Vielen Dank

Ykcim
Patrick

Geändert von Ykcim (17. Sep 2012 um 21:38 Uhr)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Delphi xe2 und #39 =ZWEI Hochkommas

  Alt 17. Sep 2012, 22:03
"Ausgelesen" wie?

Schon das Doppelhochkomma statt des #39 probiert?

Edit: Wo kommt die mysql.pas her? Parameter sind imho eine Eigenschaft von SQL, die Unit könnte das ggf. auch implementieren.

*indeinernaserumpul*
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)

Geändert von Medium (17. Sep 2012 um 22:07 Uhr)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#3

AW: Delphi xe2 und #39 =ZWEI Hochkommas

  Alt 18. Sep 2012, 06:31
Ach, der Debugger zeigt dir 2 Hochkommas an? Super, oder? Der escaped gleich richtig, sodaß Du den String so nehmen und als Stringkonstante irgendwo reinklatschen kannst.

Mit anderen Worten: Das ist kein Bug, das muss so sein.

Delphi-Quellcode:
MyString := 'String mit Hoch''komma';
Showmessage(MyString); // DEbugger auf diese Zeile und dann mit dem Cursor auf MyString
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Delphi xe2 und #39 =ZWEI Hochkommas

  Alt 18. Sep 2012, 06:33
Wenn du die Parameter wie im Beitrag #4 ignorieren möchtet, dann verwendet wenigstens die Funktion QuotedStr()!
Delphi-Quellcode:
// dynamisches Erzeugen von SQL Abfragen
query:='select * from Tabelle where Name='+QuotedStr(Variable);
Wenn du die Variable query später im Debugger anschaust, kann es durchaus sein, dass du zwei Hochkommas siehst, aber das ist absolut in Ordnung.
Delphi-Quellcode:
// folgende Anweisungen bewirken alle das Gleiche (nur unterschiedl. Schreibweise)
s := 'Opa'#39's Hut';
s := 'Opa'+#39+'s Hut';
s := 'Opa''s Hut';
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#5

AW: Delphi xe2 und #39 =ZWEI Hochkommas

  Alt 18. Sep 2012, 09:00
Vielen Dank für die Antworten.
Ich werde mich mal mit der Funktion QuotedStr() auseinandersetzen.

Opa hat keinen Hut, aber die Erklärung war gut!

Aber dennoch sehe ich das Verhalten von #39 verändert von TurboDelphi zu xe2.

Danke
Ykcim
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Delphi xe2 und #39 =ZWEI Hochkommas

  Alt 18. Sep 2012, 09:13
Kleiner Hinweis aus der Hilfe zu QuotedStr:
Zitat:
Anmerkung: Verwenden Sie für die Arbeit mit Multibyte-Zeichensätzen (MBCS) stattdessen die Funktion AnsiQuotedStr.
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
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.880 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Delphi xe2 und #39 =ZWEI Hochkommas

  Alt 18. Sep 2012, 09:34
Kleiner Hinweis aus der Hilfe zu QuotedStr:
Zitat:
Anmerkung: Verwenden Sie für die Arbeit mit Multibyte-Zeichensätzen (MBCS) stattdessen die Funktion AnsiQuotedStr.
Für Ansi QuoteStr() und für Nicht-ANSI (Unicode) AnsiQuoteStr(); ist doch logisch.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Delphi xe2 und #39 =ZWEI Hochkommas

  Alt 18. Sep 2012, 09:42
Sischa, sischa
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 22:52 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