![]() |
AW: SQL-Statement doesn't return rows
Zitat:
Das mit dem SELECT am Anfang ist nicht immer richtig (und ziemlich frustrierend wenn ein Programm für ein paar K€ das nicht weiß) @Khanysha Was hast du vor? Nicht das wir Dich mit irgendwelchen guten Ratschlägen in die Wüste schicken. Gruß K-H |
AW: SQL-Statement doesn't return rows
Zitat:
Zitat:
Zitat:
Und beim Lernen des Umganges mit Datenbanken und SQL würd' ich mir erstmal keinen Kopp um "SQL Injection" machen. Wenn's irgendwann mal an professionelle Datenbanksoftware geht, die auf die Menschheit "losgelassen" werden soll, dann wird das ein Thema, aber nicht, wenn's um's Erlernen von Datenbankgrundlagen und deren Nutzung mit Delphi geht. Das halt' ich für deutlich übertrieben! |
AW: SQL-Statement doesn't return rows
Guten Morgen zusammen,
mit dem Sand kann ich umgehen *Sandburg bau* Mein Vorhaben ist mit einer kleinen Datenbankanbindung den Umgang mit eben dieser zu lernen. Ich gebe meine SQL-Anweisungen selber ein um zu schauen ob das auch so tut wie es soll. Macht es das nicht geht es auf die Suche nach dem Fehler. Es ist ein Testprojekt, wo nur ich Zugriff drauf habe. Später, wenn ich dann mal "soweit" bin, soll das ganze in ein größeres Projekt gebaut werden. Da geht es später um eine Adressverwaltung und noch ein paar anderen Kleinigkeiten und nein es ist kein Adressbuch :D Ich werde dennoch mal was über die SQL-Injection lesen, nicht sofort aber ich werde lesen. Nun schwinge ich mich an mein Projekt und probiere die verschiedenen Dinge aus :) LG |
AW: SQL-Statement doesn't return rows
Zitat:
Zitat:
LG |
AW: SQL-Statement doesn't return rows
Verdrehen nicht aber verschachteln oder Klammern.
|
AW: SQL-Statement doesn't return rows
Es gibt auch noch diverse andere SQL-Befehle, die dir Daten zurück liefern.
z.B. INSERT mit einer entsprechenden Returning-Clause: ![]() Die Regel "wenn select dann open und sonst execsql" ist grundlegend falsch. |
AW: SQL-Statement doesn't return rows
Füt seienn Zweck extra einen komplexen Parser zu Schreiben, wäre aber mit Atomraketen auf Ameisen geschossen.
|
AW: SQL-Statement doesn't return rows
Ich vermute p80286 findet es traurig, dass die Komponenten nicht "von allein" erkennen, welche Form (Datenabfrage oder Befehl) verwendet wird.
Die Interpretation mittels
Code:
funktioniert natürlich, aber eben nur genau dann, wenn es genauso im String drin steht. Was nötig wäre, um es "wasserdicht" zu machen wäre ein parsind (Parser) für diesen String und das ist nicht unbedingt anfänger Stoff.
AnsiLowerCase(Copy(qry.sql.text,1,6)) = 'select'
Nur mal als Idee: "select" ist nicht das gleiche wie
Code:
(voranstehendes Leerzeichen)
Select ..
Code:
-- Kommentar: jetzt die Menge abfragen
select ..
Code:
(voranstehende Leerzeile)select .. Ein Parser könnte man verwenden, um den SQL String zu analysieren und festzustellen, welche Form im SQL String steht und anhand dessen entscheiden, ob "OPEN" oder "EXECUTE" verwendet wird. Wenn Du die Erkennung mittels "copy(1,6)" verwendest, wirst Du sicher bald mal darüber stolpern, wenn Du versehentlich ein Leerzeichen vor dem Select stehen hast oder sowas. Aber mach Dich nicht verrückt deswegen. Softwareentwicklung ist nicht immer eine Frage von Richtig/Falsch. Häufig geht es um Aufwand und Nutzen. Der Grad der Umsetzung wird gelegentlich damit beschrieben, dass 10% Aufwand 90% Nutzen bringen, der restliche Aufwand (90%) für die letzen 10% Nutzen drauf geht. (So ungefähr, dazu gibt es glaube ich unter bestimmten Begriffen auch wissenschaftliche Untersuchungen) |
AW: SQL-Statement doesn't return rows
Zitat:
|
AW: SQL-Statement doesn't return rows
Das Fangen der Exception wäre aber eine zumutbare Option, finde ich.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 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