AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem bei Insert mit "&"

Ein Thema von skyobserver · begonnen am 8. Mai 2014 · letzter Beitrag vom 9. Mai 2014
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von skyobserver
skyobserver

Registriert seit: 18. Mai 2005
Ort: Ense
114 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Problem bei Insert mit "&"

  Alt 8. Mai 2014, 17:26
Datenbank: Oracle • Version: 8.0 • Zugriff über: AnyDac v1.12.2
Hallo,


ich muß in einer Auftrags-Tabelle einen neuen Auftrag für einen Kunden anlegen.
Das Feld "Kundenkurzname" ist dabei ein Foreign-Key in der Kundentabelle...

Das Programm funktioniert soweit gut - allerdings bekam ich auf einmal eine
Foreign-Key-Constraint Verletzung (Kundenkurzname nicht in Kundentabelle gefunden)
als im Kundenkurzname das Zeichen "&" auftauchte...

-Der Eintrag in der Kundentabelle ist aber vorhanden!
-Das SQL-Kommando unmittelbar vor der Ausführung in ein TEdit geschrieben,
herauskopiert und im Delphi-SQL-Explorer ausgeführt funktioniert!

Ich habe den Verdacht, daß das TADCommand von den AnyDac (v1.12.2)
Datenbankkomponenten das "&" als Kommandozeichen interpretiert!?

Hat jemand eine Idee, wie ich mit AnyDac das "&" sauber zu Oracle schicken kann?
Die größte Enttäuschung für einen Perfektionisten ist die Realität
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

AW: Problem bei Insert mit "&"

  Alt 8. Mai 2014, 17:33
Das Problem wird mit 99,9%iger Sicherheit verschwinden wenn parametrisierte Abfragen/Inserts verwendet werden.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Problem bei Insert mit "&"

  Alt 8. Mai 2014, 17:33
Verwendest du (SQL-)Parameter?
Ich würde eher mit künszlichen Schlüsseln arbeiten und keine Datenfelder hierfür verwenden.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Problem bei Insert mit "&"

  Alt 8. Mai 2014, 17:51
Verwendest du (SQL-)Parameter?
Mit sicherheit nicht. Denn da würde das nicht funktionieren:

Zitat:
-Das SQL-Kommando unmittelbar vor der Ausführung in ein TEdit geschrieben,
herauskopiert und im Delphi-SQL-Explorer ausgeführt funktioniert!
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: Problem bei Insert mit "&"

  Alt 8. Mai 2014, 18:46
Im Postgres PgDAC sind die Parameter mit : und Makros mit & angeführt.
Wird hier bestimmt ähnlich sein.

Nja, und dann gibt es noch dutzende andere Steuerzeichen.
- entweder Parameter
- oder du nutzt die entsprechende Funktion "Quote"-Funktion, um die Steuerzeichen zu maskieren.

Eines von Beidem sollte man eh immer machen.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von skyobserver
skyobserver

Registriert seit: 18. Mai 2005
Ort: Ense
114 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

AW: Problem bei Insert mit "&"

  Alt 9. Mai 2014, 09:43
Erst mal Danke für die Antworten!

Zitat:
Das Problem wird mit 99,9%iger Sicherheit verschwinden wenn parametrisierte Abfragen/Inserts verwendet werden.
Das probiere ich gleich mal aus...(kann eine Weile dauern bis der Fall wieder auftritt)

Zitat:
Ich würde eher mit künszlichen Schlüsseln arbeiten und keine Datenfelder hierfür verwenden
Was ist ein künstlicher Schlüssel? Meinst Du eine Überprüfung der Konsistens der Daten durch die Software
anstatt über die Datenbank constraints? Es handelt sich um eine mehr als 10 Jahre alte Firmendatenbank
auf der noch unzählige andere Programme arbeiten - an den bestehenden Strukturen darf ich also nichts ändern...

Zitat:
oder du nutzt die entsprechende Funktion "Quote"-Funktion
Was wäre denn DIE entsprechende "Quote"-Funktion? Nach so etwas
hatte ich schon gesucht aber nicht gefunden...
Die größte Enttäuschung für einen Perfektionisten ist die Realität
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Problem bei Insert mit "&"

  Alt 9. Mai 2014, 10:03
Zitat:
Was ist ein künstlicher Schlüssel?
Ein zusätzliches Feld, welches nichts mit den eigentlichen Daten, die sich ja ändern können, zu tun hat und idealerweise automatisch gesetzt wird (ID, GUID, ...).
Zitat:
Meinst Du eine Überprüfung der Konsistens der Daten durch die Software
anstatt über die Datenbank constraints?
Nein.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von skyobserver
skyobserver

Registriert seit: 18. Mai 2005
Ort: Ense
114 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

AW: Problem bei Insert mit "&"

  Alt 9. Mai 2014, 10:57
Achso, eine Record-ID...(künstlich hatte mich irritiert...)

Kann leider an den Tabellen nichts ändern...
Die größte Enttäuschung für einen Perfektionisten ist die Realität
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Problem bei Insert mit "&"

  Alt 9. Mai 2014, 11:04
Und zu den Quotes: Bei Google suchenoracle quote ampersand. "set define off" scheint mir da noch die einfachste Möglichkeit zu sein, aber ich weiß nicht, wie man das in AnyDAC umsetzt.
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 p80286
p80286

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

AW: Problem bei Insert mit "&"

  Alt 9. Mai 2014, 11:21
Warum machst Du es mit dem Command und nicht mit der Query?
Die hat soweit ich weiß kein Problem mit dem "&"

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  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 09:05 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