allowDynamicSQL (Eigenschaft)

Gibt an, ob eine Anwendung SQL-Anweisungen dynamisch ausführen darf, die nicht in einer pureQueryXML-Datei erfasst sind bzw. erfasst, aber nicht gebunden sind.
Diese Eigenschaft gilt nur dann für eine Anwendung, wenn executionMode den Wert STATIC hat.

Diese Eigenschaft kann folgende Werte annehmen:

TRUE
Die Anwendung führt nicht erfasste SQL-Anweisungen dynamisch aus. Darüber hinaus führt sie alle SQL-Anweisungen dynamisch aus, die in einer pureQueryXML-Datei erfasst, aber als nicht gebunden konfiguriert sind. pureQuery Runtime ermittelt, ob eine SQL-Anweisung in einer pureQueryXML-Datei über das Attribut isBindable gebunden ist. Der Wert für das Attribut ist TRUE, wenn die Anweisung gebunden ist, und FALSE, wenn die Anweisung nicht gebunden ist.

Dies ist der Standardwert.

Sie könnten sich auch dafür entscheiden, allowDynamicSQL nicht auf TRUE zu setzen, wenn die Anwendung SQL-Ausnahmebedingungen (SQLExceptions) auslösen soll, damit Sie SQL-Anweisungen, die Sie noch nicht erfasst oder gebunden haben, leichter finden können.

FALSE
pureQuery gibt eine Ausnahmebedingung aus, wenn Methoden eine nicht erfasste oder nicht gebundene SQL-Anweisung verwenden. Dies sind einige der Methoden, die aus dem genannten Grund eine Ausnahmebedingung verursachen können:
  • Für Java™-Anwendungen:
    • Connection.prepareStatement()
    • Statement.addBatch()
    • Statement.execute()
    • Statement.executeQuery()
    • Statement.executeUpdate()
  • Für CLI-Anwendungen:
    • SQLPrepare()
    • SQLExecute()
    • SQLExecDirect()

Anmerkung: Wenn die Eigenschaft allowDynamicSQL auf TRUE gesetzt ist, werden Anweisungen SET SPECIAL REGISTER oder Anweisungen mit dem Anweisungstyp (statementType) SET_METHOD von pureQuery Runtime nicht eingeschränkt. Die Anweisungen sind unabhängig davon, ob die Anweisung in der pureQueryXML-Datei enthalten ist, immer zulässig.

Die folgende Tabelle zeigt die Kombinationen aus capturedOnly, executionMode und allowDynamicSQL und die aus diesen Kombinationen resultierenden Operationen:

Tabelle 1. Kombinationen aus capturedOnly, executionMode und allowDynamicSQL und resultierende Operationen:
capturedOnly executionMode allowDynamicSQL SQL-Anweisung abgeglichen Ergebnis
TRUE STATIC TRUE JA Bei isBindable = TRUE SQL-Anweisung statisch ausführen

Bei isBindable = False SQL-Anweisung dynamisch ausführen

TRUE STATIC/DYNAMIC TRUE/FALSE NEIN Fehler zurückgeben
TRUE STATIC FALSE JA Bei isBindable = TRUE SQL-Anweisung statisch ausführen

Bei isBindable = False Fehler zurückgeben

TRUE DYNAMIC TRUE/FALSE JA SQL-Anweisung ausführen
FALSE STATIC TRUE JA Bei isBindable = TRUE SQL-Anweisung statisch ausführen

Bei isBindable = False SQL-Anweisung dynamisch ausführen

FALSE STATIC TRUE NEIN SQL-Anweisung dynamisch ausführen
FALSE STATIC FALSE JA Bei isBindable = TRUE SQL-Anweisung statisch ausführen

Bei isBindable = False Fehler zurückgeben

FALSE STATIC FALSE NEIN Fehler zurückgeben
FALSE DYNAMIC TRUE/FALSE JA/NEIN SQL-Anweisung ausführen

Hinweise zur Verwendung von DB2 CLI und IBM Data Server Driver

Bei der Verwendung von DB2 Call Level Interface (CLI) oder IBM® Data Server Driver mit pureQuery Runtime können Sie die pureQuery Runtime-Eigenschaft als Konfigurationsschlüsselwort verwenden.

IBM CLI-Schlüsselwortsyntax
allowDynamicSQL = TRUE | FALSE
IBM Data Server Driver-Konfigurationssyntax
<parameter name="allowDynamicSQL" value="TRUE | FALSE" />
funktional entsprechendes Verbindungszeichenfolgenschlüsselwort von IBM Data Server Provider für .NET
nicht zutreffend

Feedback