AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Seltsamer Fehler bzgl. Parameterobjekt
Thema durchsuchen
Ansicht
Themen-Optionen

Seltsamer Fehler bzgl. Parameterobjekt

Ein Thema von Jumpy · begonnen am 7. Mai 2014 · letzter Beitrag vom 9. Mai 2014
Antwort Antwort
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#1

AW: Seltsamer Fehler bzgl. Parameterobjekt

  Alt 8. Mai 2014, 14:28
Hallo,

musste das ruhen lassen (ohne Doppelpunkt in dem Textfeld geht es ja erstmal) und komme erst morgen dazu eure Anregungen einmal aufzugreifen.

Werde wohl versuchen die relevanten Teile in eine GUI-Anwendung zu kopieren oder das Logging erweitern, mal sehen.

Und danach auch mal eure Anregungen aufgreifen, habt ja recht. Aber trotzdem ist es doch seltsam, dass es funzt, wenn der Doppelpunkt im Feld!!! (nicht im Feldnamen, nicht im SQl-Statement) weggelassen wird. Oder das ein Paramter-Fehler gemeldet wird, wo ich doch keine Parameter einsetze.

In anderen Datensätzen ist dies übrigens kein Problem, z.B. gibt es da auch viele Textbausteine für Webformulare mit Einträgen wie "Name:", "Ort:" usw. da klappt alles. Einziger unterschied, da gehe ich nicht über die ID um den Eintrag zu finden sondern über die Felder Seite, Position, Kategorie usw.

Bzgl. Seite='*' noch kurz. D.h. nur, dass wenn ein Textbaustein auf jeder Seite der Webanwendung auftauchen könnte, nicht auf einer konkreten, dann steht da in der Spalte "Seite" halt ein Stern drin. Solange ich nichts mit "like" im SQL mache sollte ich doch da auch keine Schwierigkeiten kriegen, dass das als Wildecard interpretiert wird.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Seltsamer Fehler bzgl. Parameterobjekt

  Alt 8. Mai 2014, 15:16
... wo ich doch keine Parameter einsetze.
Ein Doppelpunkt ist ein Parameter. Darüber bin ich auch mal gestolpert, ich hab bloß keine Ahnung mehr wie ich das damals maskiert habe. Ist zwar blöde aber mit Computern diskutiert man nicht.

Gruß
K-H
QSherlock:
Zitat:
Ein CR/LF ist doch auch ein Whitespace. Oder sieht das der SQLServer anders?
Doch ist so, aber ich bin mir nicht sicher ob ein .Add immer ein CRLF produziert, darum immer ein Blank am Zeilenende und Einrücken.
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 ( 8. Mai 2014 um 15:19 Uhr)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#3

AW: Seltsamer Fehler bzgl. Parameterobjekt

  Alt 8. Mai 2014, 16:10
Ihr verwechselt da was (?):
Delphi-Quellcode:
SQL.Add('foo');
SQL.Add('bar');
// vs.
SQL.Add('foo'
      + 'bar');
Das eine erzeugt einen String mit zwei durch (CR)LF getrennten Token, das zweite erzeugt logischerweise ein Token.
'Token' deshalb, weil es das ist, was der Tokenizer/Parser im RDMBS als Teil des Statement-Compilers dann aus dem Input-String herauszuppelt.

Einige RDMBS benötigen an bestimmten Stellen ein sogar CRLF (als Ersatz für den Statement-Trenner ';'), sodaß es wohl kaum einen Treiber gibt, der das wegschnippelt.

Wieso sollte ein Treiber ein CRLF ersatzlos wegschnippeln? Das wäre ein schwerwiegender Bug... Und wenn man sich in einem Profiler oder ähnlichen Programm dann anschaut, was genau zum Server geschickt wird, sollte klar werden, das Zeilentrenner nie nicht niemals ersatzlos weggeschnippelt werden.

Nun kann man trotz allem ja trotzdem Leerzeichen 'sicherheitshalber' einbauen, aber wozu? Aberglaube?

So, nun bin ich aber wirklich gespannt, wie die Geschichte mit dem Doppelpunkt ausgeht...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Seltsamer Fehler bzgl. Parameterobjekt

  Alt 8. Mai 2014, 16:15
Sorry, meine Schuld, wie kann ich auch vorschlagen ein Leerzeichen einzubauen! Ich hatte nie geschriben, dass der Zeilentrenner entfernt wird und habe auch nicht gesagt, dass es bestimmt daran liegt bzw. das ein abolutes Problem ist!

Die Hauptaussage war "Verwende Parameter". Was der TE aber wohl aus irgendwelchen Gründen nicht will.
Markus Kinzler
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#5

AW: Seltsamer Fehler bzgl. Parameterobjekt

  Alt 8. Mai 2014, 18:07
Sorry, meine Schuld
Du warst doch gar nicht gemeint. Wieso fühlst Du dich angesprochen? Wir schweifen doch eh ab, es geht um diesen Doppelpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.814 Beiträge
 
Delphi 12 Athens
 
#6

AW: Seltsamer Fehler bzgl. Parameterobjekt

  Alt 9. Mai 2014, 08:49
Eben, Sorry, das ich das einwarf. Wie ist es denn nun ausgegangen, mit dem Doppelpunkt?


Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#7

AW: Seltsamer Fehler bzgl. Parameterobjekt

  Alt 9. Mai 2014, 10:30
MoinMoin,

ich hab heut morgen jetzt fast 2 Std. damit verbracht das Problem zu lösen und ich kann nur hoffen, dass ihr mich jetzt nicht steinigt. Das Problem wurde nämlich nicht da verursacht wo ich gedacht habe.

Nachdem ich die (wie ich dachte) relevanten Teile aus der Web-Cgi in ein Mini Testprojekt ausgelagert habe, trat der Fehler nicht auf, wie ja auch Sir Rufo und andere das schon nachgestellt haben.

Da ich aber nicht wußte, wie man eine CGI vernünftigt debuggt (gibt's da was?) habe ich nach und nach an diversen Stellen Logging-Calls eingebaut, um zu sehen, wo genau der Fehler geworfen wird und da hab ich dann bemerkt, das meine eigentlichen Routinen auch in der CGI ohne Fehler sauber durchlaufen.

Als ich dann geschaut habe, woher eigentlich die Anfrage nach diesem speziellen Textbaustein kommt, habe ich gesehen, dass das von einem Ajax-Request aus einem anderen Modul kommt. Weitere Recherchen haben dann ergeben, das es letzte Woche in dem Modul wohl ein Problem gab und ein Kollege, der die normale Logging-Routine nicht benutzen wollte, sich schnell selber eine Logtabelle erstellt hat um sämtliche Ajax-Requests und -Responses zu loggen. Die Funktion die er dafür mal eben schnelll erstellt hat, benutzt natürlich keine Parameter (ihr hattet ja alle irgendwie Recht ) und platziert nun einen Text, der einen Doppelpunkt enthält in ein SQL-Statement und da wird dann ein Parameter vermisst.
Ralph
  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 13:25 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