Einzelnen Beitrag anzeigen

DonManfred

Registriert seit: 8. Nov 2007
Ort: Düren
55 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Hauptform verschwindet nach Aufruf eines anderen Forms

  Alt 13. Okt 2020, 13:44
Warum ExecSQL?

Du hast aber Glück, dass es hier keinen Fehler gibt ... wird nur sinnlos doppelt ausgeführt, das SELECT.

Dann noch das für SQL komplett völlig falsche QuoteStr.
Warum nicht als Parameter? Denn mit diesem QuoteStr kann man keine SQL-Injection verhindern, da es die Pascal-String-Syntax benutzt, anstatt der Syntax für SQL-Strings.
Ich gebe zu der Code ist alt (Projekt begonnen 2008. Zuvor hatte ich nur wenig Erfahrung mit Delphi 6.

zu dem EXECSQL:
Heisst das, Open führt den Select auch schon aus? bzw. Active := true dann ebenfalls?

Dann noch das für SQL komplett völlig falsche QuoteStr.
Warum nicht als Parameter?
Ich nutze die Devart Uniconnector komponenten. Ich weiss ehrlich gesagt nicht, wie ich da Parameter einsetzen könnte.
Ich habe mir das SO selber beigebracht; heisst natürlich nicht, dass es so auch richtig ist.
Edit: Ok, hab per Google Beispiele gefunden wie das mit den UniDac Komponenten geht.
Scheint mir aber ein grosser Aufwand den ich hier betreiben muss um alle Abfragen derartig umzubauen

Eine SQL-Injection will ich nicht verhindern (Ok, falsch ausgedrückt. Ich denke nicht, das hier eine Injektion geschieht. Das macht keiner unserer Mitarbeiter. Ich schätze ich bin auch der einzige dem der Begriff etwas sagt).
Die Werte die hier in einem Query eingesetzt werden setze bzw. ermittle ich selber. Der Benutzer gibt hier keine Falschen Daten ein.

Und von aussen kann niemand an das Programm ran. Das ist eine Software die ausschliesslich bei uns in der Firma verwendet wird.

PS: Bisher hat das alles so funktioniert. Mit XE3.

Das QuotedStr habe ich dann irgendwann eingeführt als ich mit qry.SQL.Add(...) auf probleme trat wenn ich die Werte mittels fieldname="wert" eingesetzt hatte. durch das QuotedStr wurde dann in der SQL-Abfrage
feldname='Wert'; so konnte ich die Abfrage dann auch absetzen.

Sicherlich aufwengiger als Parameter zu nutzen; jetzt im nachhinein gesehen sehe ich das auch ein nachdem ich den Thread erstellt habe und Deine Hinweise gelesen habe.

Bei unserer "Dicken" App (200 forms) klappt es auch aktuell. Sicher noch Stellen anzupassen aber Sie läuft zumindest schonmal wieder.
Ich schätze ich hätte in der Vergangenheit öfter mal einen Thread hier erstellen sollen bei Problemen

Geändert von DonManfred (13. Okt 2020 um 14:18 Uhr)
  Mit Zitat antworten Zitat