Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

MethodeBeispiel
run

Der DatasourceProvider lässt sich auch nutzen, um Datenbankfunktionen aufzurufen (z.B. als Ersatz für callDBFunction der alten Nuclos API vor 4.0). Der Aufruf der Funktion selbst muss in einer Datenquelle implementiert werden, z.B.:

Datenquelle: MyDatasource

Codeblock
languagesql
titleSQL-Statement der Datenquelle
SELECT CA_MYDBFUNCTION('$parameter')::numeric(9,2) "result"

Indirekter Aufruf der Datenbankfunktion mithilfe des DatasourceProviders.

Codeblock
package org.nuclet.test;
 
import org.nuclos.api.exception.BusinessException;
import org.nuclos.api.provider.DatasourceProvider;
 
@Rule(name="Test", description="Test")
public class Test {
    public static Double callFunction() throws BusinessException {
        DatasourceResult ds = DatasourceProvider.run(MyDatasourceDS.class);
        Double result = (Double)(ds.getRows().iterator().next()[0]);
        return result;
    }
}

Weitere Implementierungen von DatasourceProvider.run() lassen auch die Übergabe von Parametern an die Datenquelle (und damit an die Datenbankfunktion) zu.