Announcement

Collapse
No announcement yet.

Fehler bei SQL-Zusammenstellung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fehler bei SQL-Zusammenstellung

    <p>Hallo,</p><p>

    ich habe ein Problem bei der Definition einer SQL-Anweisung:</p>
    <p><pre>//Datum
    dToDoDate:=Date();

    //Datum als String setzen
    strDatum:=DateToStr(dToDoDate);

    //Datenbankaufruf
    strSQL1:= 'select a.*,b.Prioritaet from tblToDo as a, tblPrioritaet as b '
    +
    ' where a.Datum = "' + strDatum + '"';
    DM.DSToDoOut.CommandText:=strSQL1;
    DM.DSToDoOut.Active:=True;</pre></p>

    <p><pre>Folgender Fehler tritt auf:
    ---------------------------
    Benachrichtigung über Debugger-Exception
    ---------------------------
    Im Projekt CC.exe ist eine Exception der Klasse EOleException aufgetreten.
    Meldung: 'Ungültiger Spaltenname '03.01.2004''. Prozess wurde angehalten.
    Mit Einzelne Anweisung oder Start fortsetzen.
    ---------------------------
    OK Hilfe
    ---------------------------
    </pre></p><p>
    mfg</p><p>
    Brian
    </p>

  • #2
    Hallo,

    generell sollte man auf derartige Zeichenverkettungen verzichten und statt dessen zu Parametern greifen. Da in dem o.g. Beispiel eine EOleException auftritt, wird der genutzte OLE DB Provider sein Veto gegen die SQL-Anweisung einlegen. In Abhängigkeit vom verwenden Provider (bzw. der Datenbank) muss ein Datums-Literal speziell gekennzeichnet werden. Wenn man Parameter verwendet, geht man derartigen Problemen generell aus dem Weg.

    Außerdem wird ein JOIN für zwei Tabellen zusammengebaut, der keine Tabellenbeziehung zwischen den Aliasbezeichnungen a und b definiert

    Comment

    Working...
    X