Skip to main content
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 Download

LookUp Heater; SQL-Tabellen Bezeichnung

  • Stephan Sempert
  • Autor
  • Offline
  • Benutzer
  • Benutzer
Mehr
12 Jahre 8 Monate her #527 von Stephan Sempert
LookUp Heater; SQL-Tabellen Bezeichnung wurde erstellt von Stephan Sempert
Im Feld "Tabelle" des Loopup-Heaters kann prinzipiel auch eine Tabelle in einer anderen als der aktuellen Datenbank angesprochen werden. Allerdings macht es eine Automatik von FH etwas, ... unhandlich?.

Die Schreibweise (mindestens beim MS-SQL-Server) für solche Verweise lautet:

Datenbank.Schema.Tabelle
also z.B.
Kundenverwaltung.dbOwner.Adressen

Das Problem: FH schreibt um den Tabellennamen die optionalen " [ ] " . Das ist einerseits gut, weil damit eventuelle Leerzeichen im Namen keine Fehler im SQL-Code verursachen.

Beispiel [Adressen alt]

Andererseits ist das nicht so gut, weil dass bei Verweisen ausserhalb der aktuellen Datenbank nicht funktioniert.

Beispiel:
[Kundenverwaltung.dbOwner.Adressen] -> falsch!
[Kundenverwaltung].[dbOwner].[Adressen] -> richtig!

Als Workaround kann man Verweise ausserhalb der aktuellen Datenbank so schreiben:

Kundenverwaltung].[dbOwner].[Adressen

FH macht dann daraus die korrekte Syntax:
[Kundenverwaltung].[dbOwner].[Adressen] -> richtig

Vielleicht könnte man die Eigenschaften im Heater LookUp um optionale Felder "Datenbank" und "Schema" erweitern und so eine "korrekte" Syntax ermöglichen?

BG
Stephan

Bitte Anmelden um der Konversation beizutreten.

Mehr
12 Jahre 8 Monate her #528 von FlowHeater-Team
FlowHeater-Team antwortete auf Aw: LookUp Heater; SQL-Tabellen Bezeichnung
Ja, da haben Sie Recht, der ist hier durchaus verbesserungswürdig. Was auch nicht ganz schön gelöst ist, ist dass der Lookup Heater Eingangsparameter anhand des Typs in das SQL WHERE Statement formatiert.

z.B.
Eingangsparameter ist Integer WHERE "ID = $1" wird zu ID = 1001
Eingangsparameter ist String WHERE "ID = $1" wird zu ID = '1001'

Bei Datumsangaben ist es noch schwieriger, da hier Datenbanken die meisten Unterschiede aufweisen.

Da es nicht ganz einfach ist an dieser Stelle alle erdenklichen Datenbanken (Access, MS SQL Server, MySQL, Oracle, ODBC bzw. OleDB) abzubilden wurde das bisher nicht weiter angegangen.

Ihr Verbesserungsvorschlag wurde mit auf die TODO Liste gesetzt, demnächst wird der Datenbank Lookup Heater deutlich verbessert.

Für Spezial Lookups können Sie auch den .NET Script Heater mit folgendem Skript verwenden. Datenbank, Schema etc. können hier frei definiert werden.
Code:
public object DoWork() { if (InValues.Length != 1) throw new Exception("1 Eingangsparameter erwwartet"); // ersten Eingangsparameter holen string sID = (string)InValues[0].GetString(); if (sID == null) return null; // folgendes SQL Statemnet falls ID als (Ganz)Zahl in der Tabelle definiert ist string sql = "select IHR_WERT from IHRE_TABELLE where ID = " + sID; // folgendes SQL Statemnet falls ID als CHAR/VARCHAR in der Tabelle definiert ist //string sql = "select IHR_WERT from IHRE_TABELLE where ID = '" + sID + "'"; return AdapterWrite.Execute(sql, true); // oder für ein Datenbank Lookup auf der READ Seite return AdapterRead.Execute(sql, true); }

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 um der Konversation beizutreten.

Ladezeit der Seite: 0.260 Sekunden

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.