Kategorie: Datenbankzugriffe
Frage: Was bedeutet der Fehler "Datentypen in Kriterienausdruck unverträglich"?
Dieser Fehler tritt auf, wenn man unterschiedliche Datentypen (Tabellenspalte / Variable) verwendet.
Nachfolgend ein paar Beispiele, die diesen Fehler verursachen können:

[selectnum.asp]
<%
' --- Folgendes Statement löst einen Fehler aus
SQL = "SELECT <feld> FROM tabelle WHERE <numerischesfeld> = '" & <asp-variable> & "'"

' --- Folgendes Statement wäre richtig
SQL = "SELECT <feld> FROM tabelle WHERE <numerischesfeld> = " & <asp-variable>
%>
Hier besteht der Fehler darin, zu versuchen, ein numerisches Tabellenfeld mit einem String zu vergleichen.
<asp-variable> muss in diesem Beispiel ein numerischer Wert sein.


[selectbool.asp]
<%
' --- Folgendes Statement löst einen Fehler aus
SQL = "SELECT <feld> FROM tabelle WHERE <ja-nein-feld> = '" & <asp-variable> & "'"

' --- Folgendes Statement wäre richtig
SQL = "SELECT <feld> FROM tabelle WHERE <ja-nein-feld> = " & <asp-variable>
%>
Hier besteht der Fehler darin, zu versuchen, ein Tabellenfeld des Typs Boolean (Ja/Nein) mit einem
String zu vergleichen. Ja/Nein-Felder können die Werte True/False (in Access) oder -1 (True) /  0 (False)
(Access und Microsoft SQL-Server) enthalten. Die Werte dürfen nicht in '...' geschrieben werden,
da ansonsten derselbe Fehler auftritt.


Analog zu den oben angegeben SELECT-Statements ist bei DML-Befehlen (INSERT, UPDATE, DELETE)
zu verfahren. Sie müssen immer darauf achten, dass die Feldtypen der Tabellenspalte und der verwendeten
Variable gleich sind.

Zuordnung Feldtypen (genaue Informationen über Wertebereiche entnehmen Sie bitte der Hilfe):
- Boolean (Ja/Nein): -1 -> Wahr, 0 -> Falsch
- Zahl: Alle numerischen Werte, die innerhalb des in der Tabelle angegebenen Typs zugelassen sind.
- String: Zeichenfolge (max. 255 Zeichen, bzw. die max. Größe, die in der Tabelle angegeben wurde)
- Memo: Zeichenfolge (max. 65.535 Zeichen, über ADO durch die max. Größe einer Datenbank beschränkt)
- Datum/Zeit: Datums- Uhrzeitangaben (Wenn möglich, das Format MM/TT/JJJJ für Datumsangaben verwenden).
- Währung: Zahlen. Die Darstellung als Währung wird nur intern in der Datenbank verwendet. Ein- und
- Ausgabewerte sind immer reine Zahlen (ohne "DM"). Die Ausgabe als Währung in ASP kann durch die
Funktion "FormatCurrency(<feld>)" erzeugt werden.
Copyright 2000 - 2024 by Stefan Falz Webconsulting