Announcement

Collapse
No announcement yet.

MSSQL Datenbankabfragen

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

  • MSSQL Datenbankabfragen

    In meinem Programm möchte ich via Click über einen Kalender gerne alle Daten
    aus meiner MSSQL Datenbank auflisten die das gewählte Datum haben. Als ich das
    mit MS Access gemacht habe hat der untenstehende Code funktioniert. Nachdem ich auf
    MSSQL umgestellt habe leider nicht mehr. Es kommt immer der Fehler:

    "Im Projekt "Programmname" ist eine Exception der Klasse EOleException mit der Meldung
    ungültiger Spaltenname "22.11.2009" aufgetreten.

    Was mache ich falsch oder wie frage ich Datumswerte mittels Variable in einem SQL-String
    ab? Ich hoffe es kann mir einer den entscheidenden Typ geben!

    Danke im Voraus!


    Procedure GehezuDatum;
    VAR Datum : String;
    Sortierung : String;
    Begin
    Datum := datetostr(FMain.Kalender.Date);
    Sortierung := FMain.CBSortierung.Text;
    with FMain.ADOJournal do
    begin
    active := False;
    sql.Clear;
    sql.Add('SELECT * From Journalbuch Where Eintragdatum Like "' + datum + '"');
    sql.Add('ORDER by "' + Sortierung + '" DESC');
    try
    active := True;
    except
    beep;
    end;
    end;

    End;

  • #2
    Wenn man beim SQL-Server die Doppel-Hochkomma verwendet, dann gibt man damit einen Spaltennamen an, Will man auf Strings vergleichen, dürfen nur einfache Hochkomma gesetzt werden.

    bye,
    Helmut

    PS: also statt ... Where Eintragdatum Like "' + ... (Doppel-Hochkomma, Hochkomma)
    ein ... Where Eintragdatum Like ''' + ... (drei mal einfaches Hochkomma) schreiben
    Und wenn das Datumsfeld vom Typ DateTime ist, dann den String besser im Format JJJJMMTT (also zB. '20090423') schreiben, das funktioniert dann unabhängig von der Ländereinstellung des SQL-Servers.
    Zuletzt editiert von hwoess; 22.11.2009, 09:42.

    Comment


    • #3
      Am besten gleich den Quellcode auf parametrisierte Abfragen umstellen. Vo allem im Bereich Datumsangaben spart man sich damit viele Probleme.

      Comment


      • #4
        Das nächste mal Crossposts bitte angeben.

        Comment

        Working...
        X