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.
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);
}