Hallo Herr Warth,
Für Ihr Problem gibt es 2 mögliche Fehlerquellen:
- Sie haben den Parameter $1 in einfache Hochkommas eingeschlossen z.B. PtMRN = ‚$1‘, dafür spricht die Fehlermeldung die Sie gepostet haben.
- Das Feld PtMRN ist kein Alphanummerischer Datentyp (SQL Datentypen char, nchar, varchar, nvarchar, text) sondern ein Zahlen Datentyp (SQL Datentyp int, long, float, numeric, …). In diesem Fall müssen Sie den FlowHeater Datentyp des Eingangsparameters für $1 auf INT (oder Double bzw. Currency) umstellen. Dafür spricht die WHERE Klausel die Sie gepostet haben.
Ich denke Ihr Problem liegt an der 1. Möglichkeit. Sie haben bei der WHERE Bedingung den Parameter $1 in einfache Hochkommas gesetzt!
Falsch = PtMRN = '$1' -> wird aufgelöst nach PtMRN = 'N'ihre daten''
Richtig = PtMRN = $1 -> wird aufgelöst nach PtMRN = N'ihre daten'
Hintergrund:
Der
Lookup Heater
formatiert automatisch den/die Parameter anhand des eingehenden Datentyps. Kommt z.B. eine Zeichenkette an wird der Parameter automatisch mit einfachen Hochkommas umschlossen. Das
N' vorneweg zeigt der Datenbank an, dass die Daten/Zeichen die geliefert werden als UNICODE Daten/Zeichen interpretiert werden sollen. Das
N' ist Adapterabhängig und kann über die
Adapter Eigenschaft
"UseUnicodeStrings" angepasst werden. Im Normalfall brauchen Sie hier keine Änderungen vornehmen.
Ist der eingehende Datentyp eine Zahl, formatiert der Lookup Heater die WHERE Klausel so, dass die Datenbank z.B. auch Nachkomma stellen und Tausendertrennzeichen (Punkt oder Komma) richtig verarbeiten kann. Dieses Vorgehen ist unabhängig von der Formateinstellung vom WRITE Adapter.
Bei Datumsangaben ist das Problem am gravierendsten. Hier werden je nach Datenbank komplett unterschiedliche WHERE Klauseln gebildet.
z.B.
MS Access = where feld = #2010-11-08#
MS SQL Server = where feld = '2010-11-08'
Aus diesem Grund dürfen Sie bei den Parametern der WHERE Klausel keine Hochkommas, oder Ähnliches mit angeben.