Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 10.000 Datensätze verarbeitet werden!
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Willkommen im FlowHeater Support Forum!

Hier werden Fragen zum Umgang mit dem FlowHeater beantwortet.

THEMA: LookUp Heater

LookUp Heater 6 Jahre 1 Monat her #224

  • Rainer Warth
  • Rainer Warths Avatar
  • Offline
  • New Member
  • Beiträge: 3
Hallo,
ich komme mit dem LookUp heater nicht zurecht. Ich konnte den Heater einamal erfolgreich einseitzen 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
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: LookUp Heater 6 Jahre 1 Monat her #229

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1102
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.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: LookUp Heater 6 Jahre 1 Monat her #230

  • Rainer Warth
  • Rainer Warths Avatar
  • Offline
  • New Member
  • Beiträge: 3
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
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.077 Sekunden