Entwickler-Ecke

Datenbanken - SQL-Fehler zur Laufzeit


D. Annies - So 10.02.13 20:54
Titel: SQL-Fehler zur Laufzeit
Hi, Delpher,

der folgende SQL-Befehl stimmt nicht:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TBuchMain.heuteGebtag1Click(Sender: TObject);
begin
  showmessage(inttostr(t) + ' ** ' + inttostr(m));
  qSchueler2.datasource   := TbSchueler.DataSource;
  qSchueler2.DatabaseName := listbox11.items[listbox11.itemindex];
  screen.cursor := crhourglass;
  QSchueler2.close;
    QSchueler2.sql.text :=
      format('select Ident_Nr, name, vorname, klasse, gebdat FROM "%s" S WHERE (day(gebdat) = :TagH) and (month(gebdat) = :MonH)', [TbSchueler.Tablename]);
      QSchueler2.Parambyname('TagH').asstring := inttostr(m);
      QSchueler2.Parambyname('MonH').asstring := inttostr(t);
  QSchueler2.open;
  screen.Cursor := crdefault;
  TeilmengenausgabeSG(QSchueler2);
end;


Fehlermeldung : .. Operand Type Mismatch

Danke für eine Idee,
Detlef


WasWeißDennIch - So 10.02.13 20:58

AFAIK geben DAY und MONTH Integers zurück. Versuch doch mal

Delphi-Quelltext
1:
2:
QSchueler2.Parambyname('TagH').AsInteger:= m;
QSchueler2.Parambyname('MonH').AsInteger:= t;

BTW: m für den Tag und t für den Monat? Verwechslung?


D. Annies - So 10.02.13 21:23

VOLLTREFFER!!
Ich wusste den erzeugten Datentyp nicht.

Danke, und natürlich hast du auch die kleine Verwechselung bemerkt.

Einen schönen Abend noch,
Detlef


WasWeißDennIch - So 10.02.13 21:26

user profile iconD. Annies hat folgendes geschrieben Zum zitierten Posting springen:
Ich wusste den erzeugten Datentyp nicht.

Im Zweifelsfall statt der "AsXXX"-Properties einfach mal "Value" versuchen, das ist Variant und damit etwas flexibler.

Auch Dir einen schönen Abend, Namensvetter ;)