Zum Hauptinhalt springen
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Flowheater Chart

Lookup Heater Handling

Mehr
14 Jahre 2 Wochen her #224 von Rainer Warth
Lookup Heater Handling wurde erstellt von Rainer Warth
Hallo,
ich komme mit dem Lookup Heater nicht zurecht. Ich konnte den Heater einmal erfolgreich einsetzen für ein Lookup auf der Read Seite. Für ein anderes Problem mit einem LookUp auf der Write Seite bin komme ich nicht weiter.

Situation:
Read Seite: MS-Access Tabelle: SA10_Patienten
Write Seite: SQL-Server, Database:Caisis, Tabelle: Pathology
Heater: LookUp - Write
Tabelle - Patients
Field - PatientId
WHERE - PtMRN = $1

Die Variable $1 kommt von dem Datenfeld BbsNumber auf der ReadSeite. Ich würde gerne den Wert von BbsNumber in der Tabelle Patients (SQL-server, Database:Caisis) in dem Datenfeld PtMRN nachschauen und dann den Wert der PatientID zurückgeben. Wenn ich Definition ausführe erahlte ich:

LookUp Error

select [PatientID] from [Patients] where PtMRN = 'N'7609''

Mir ist nicht klar wo das 'N' herkommt und was es bedeutet.
Wenn ich das SQL satatement

select PatientId from patients where PtMRN = '7609'

in SQL Managment Studio eingebe erhalte ich den richtigen Wert = 1.

Anbei noch ein Screen shot. Vielen Dank schon mal,
Rainer

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
14 Jahre 2 Wochen her #229 von FlowHeater-Team
FlowHeater-Team antwortete auf Lookup Heater Handling
Hallo Herr Warth,

Für Ihr Problem gibt es 2 mögliche Fehlerquellen:
  1. Sie haben den Parameter $1 in einfache Hochkommas eingeschlossen z.B. PtMRN = ‚$1‘, dafür spricht die Fehlermeldung die Sie gepostet haben.
  2. 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.

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
14 Jahre 1 Woche her #230 von Rainer Warth
Rainer Warth antwortete auf Lookup Heater Handling
Vielen Dank Herr Stark,
Ihre Erklärungen waren sehr hilfreich. In meinem Fall was es Fehlerquelle 2.

Grüsse aus dem regnerischen Genf.

Rainer Warth

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.259 Sekunden
FlowHeater Logo

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation

Telefon:
0951 / 99339792

E-Mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.


Copyright © 2009-2024 by FlowHeater GmbH. Alle Rechte vorbehalten.