Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

SQL

logo3 / 2 Antworten / Baumansicht Nickles

Hallo,

bei der Ausführung dieser sql query passiert nix
warum eigetlich ? keine fehlermeldung und gar nichts.

danke


---------------------------------------------------------------
Dim objDB As DAO.Database
Dim objRS As DAO.Recordset
Dim strSQL As String

strSQL = "SELECT total.vorname, total.alter FROM total WHERE (((total.vorname)= 'peter'));"

Set objDB = CurrentDb
Set objRS = objDB.OpenRecordset(strSQL, , DAO.dbSQLPassThrough)


Call objRS.Close
Set objRS = Nothing
Set objDB = Nothing
---------------------------------

bei Antwort benachrichtigen
Andreas42 logo3 „SQL“
Optionen

Hi!

Möglicherweise befindet sich kein Datensatz mit vorname = "peter" in der Tabelle. Prüfe bitte, ob dein SQL-Dialekt Gross/Kleinschreibung beachten. Meiner macht das nicht, zudem habe ich da das Problem, dass der ein Vergleich auf alle Zeichen eines Feldes durchführt.

Das ist bei Strings ein Problem, weil die mit Leerzeichen gefüllt werden. Wenn vorname 10 Zeichen lang ist, dann steht da "Peter_____" drin und das ist ungleich "peter". ;-)

Bis dann
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
Borlander Andreas42 „Hi! Möglicherweise befindet sich kein Datensatz mit vorname peter in der...“
Optionen

Das Ergebnis des Stringvergleichs dürfte von der verwendeten Datenbank und ggf. auch dem Feldtyp abhängen. (Mit MySQL und (VAR)CHAR ist es beispielsweise kein Problem...)

Irgendwie habe ich allerdings den Verdacht, daß die Daten gar nicht wirklich weiter verarbeitet werden. Die Ergebnismenge wird zwar scheinbar geholt, anschließend aber sofort wieder geschlossen. Da wäre es dann kein Wunder wenn nix passiert. Vollkommen unabhängig von der Größe der Ergebnismenge.


Gruß
bor

bei Antwort benachrichtigen