AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Änderungen bei Hochkommas in Strings zwischen D7 und XE4?

Änderungen bei Hochkommas in Strings zwischen D7 und XE4?

Ein Thema von Codehunter · begonnen am 2. Jun 2014 · letzter Beitrag vom 5. Jun 2014
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.658 Beiträge
 
Delphi 7 Personal
 
#11

AW: Änderungen bei Hochkommas in Strings zwischen D7 und XE4?

  Alt 2. Jun 2014, 16:39
...ist die Verarbeitung von doppelten bzw. mehrfachen Hochkommas
äh ja
Code:
''<>"
das ist korrekt!

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

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.088 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: Änderungen bei Hochkommas in Strings zwischen D7 und XE4?

  Alt 2. Jun 2014, 16:47
D7 und XE6 bringen beide das korrekte Ergebnis.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
37.244 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: Änderungen bei Hochkommas in Strings zwischen D7 und XE4?

  Alt 2. Jun 2014, 16:57
Das Einzige, wo ich derartige Probleme kenn', ist bei der Übergabe in Scriptsprachen (z.B. im FastReport) oder in der Stringbehandlung im FinalBuilder, wo es manchmal recht wirr ist, und man kaum mitbekommt wann man wo und warum die Zeichen wie oft maskieren muß, damit 10 Befehle später der richtige String raus kommt.

Ansonsten kann/darf/wird sich so ein fundamentales Verhalten nicht ändern, da sonst alte Codes nicht mehr funktionieren würden.
Man stelle sich mal vor was wohl passieren würde, wenn sich in einem SQL-String Dieses verändert, vorallem bei denen, welche nicht parametrisiert arbeiten.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 2. Jun 2014 um 17:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.190 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#14

AW: Änderungen bei Hochkommas in Strings zwischen D7 und XE4?

  Alt 3. Jun 2014, 09:04
Man stelle sich mal vor was wohl passieren würde, wenn sich in einem SQL-String Dieses verändert, vorallem bei denen, welche nicht parametrisiert arbeiten.
Ähm ja... Genau dadurch bin ich überhaupt drauf gestoßen weil sich seit der Umstellung von D7 auf DXE4 durch wiederkehrende SELECTs und UPDATEs plötzlich in einigen VARCHAR-Feldern führende und abschließende Hochkommas fanden und sich auch noch vermehrten.

Wenn das hier das gewollte richtige Verhalten ist:
Delphi-Quellcode:
sTest:= 'Hello ''World''!'; // Ausgabe: Hello 'World'!
sTest:= 'Hello '''World'''!'; // Ausgabe: Hello ''World''!
dann muss das hier aus unserem D7-Code ursprünglich mal ein Bug gewesen und nie aufgefallen sein:
Delphi-Quellcode:
sTest:= 'Hello ''World''!'; // Ausgabe: Hello World!
sTest:= 'Hello '''World'''!'; // Ausgabe: Hello 'World'!
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
37.244 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Änderungen bei Hochkommas in Strings zwischen D7 und XE4?

  Alt 3. Jun 2014, 09:14
Dann würde ich den Fehler nicht bei Delphi suchen, sondern bei der Datenbank und vorallem bei den Schnittstellenkomponenten.

Die werden dann vermutlich irgendwo einen Bug haben.


Wolltest du nicht mal den Tippfehler beheben?
Wie erwähnt, zeigt dir der CodeHighlighter, daß der zweite Zeile definitiv falsch ist, welches dir auch der Compiler gern nochmal bestätigen wird.

Aus Sicht des Codeparsers, ist das hier korrekt, wenn man es auf den "String" bezieht.
Delphi-Quellcode:
sTest:= 'Hello ''World''!'; // im String: Hello 'World'!
sTest:= 'Hello ''''World''''!'; // im String: Hello ''World''!
Wenn man jetzt nochmal einen Parser dazwischen schaltet, welcher ebenfalls wieder die Strings entsprechend parst, dann könnte das so aussehen.
(einmal ein Parser nach Delphi-Standard und einer nach C-Standard ... auf Seite der Datenbank meist das Letztere)
Delphi-Quellcode:
sTest:= 'SELECT ''Hello ''''World''''!'''; // im Query: SELECT 'Hello ''World''' => im DB-Feld: Hello 'World'!
sTest:= 'SELECT ''Hello \''World\''!'''; // im Query: SELECT 'Hello \'World\'' => im DB-Feld: Hello 'World'!
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 3. Jun 2014 um 09:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.121 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: Änderungen bei Hochkommas in Strings zwischen D7 und XE4?

  Alt 3. Jun 2014, 09:29
Verwendest Du keine parametrisierten SQL-Statements? Damit würde das ganze Geraffel ersatzlos entfallen.
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 Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.088 Beiträge
 
Delphi 10.4 Sydney
 
#17

AW: Änderungen bei Hochkommas in Strings zwischen D7 und XE4?

  Alt 3. Jun 2014, 10:27
Verwendest Du keine parametrisierten SQL-Statements?
<Sarcasm>So'n neumodisches Zeugs braucht doch eh niemand!</Sarcasm>
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
bcvs
Online

Registriert seit: 16. Jun 2011
523 Beiträge
 
Delphi 10.3 Rio
 
#18

AW: Änderungen bei Hochkommas in Strings zwischen D7 und XE4?

  Alt 3. Jun 2014, 11:01
Verwendest Du keine parametrisierten SQL-Statements? Damit würde das ganze Geraffel ersatzlos entfallen.
Oder zumindest QuotedStr
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.190 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#19

AW: Änderungen bei Hochkommas in Strings zwischen D7 und XE4?

  Alt 5. Jun 2014, 09:20
Verwendest Du keine parametrisierten SQL-Statements?
Punkt 1: Uraltes Projekt, minimale Investition in Pflege.
Punkt 2: Kann der dortige Client nicht.
Punkt 3: Das Problem war ja nicht auf SQL-Statements beschränkt sondern auf sämtliche hartcodierte Strings.

Aber das hat sich ja heute Morgen auf wundersame Weise selbst geheilt.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
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 10:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf