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 SQL SET-Anweisungen, die Sonderregister definieren, oder JDBC-Verbindungsaufbaumethoden, durch die Sonderregister definiert werden, von pureQuery Runtime nicht eingeschränkt. Die Anweisungen sind unabhängig davon, ob die Anweisung in der pureQueryXML-Datei enthalten ist, immer zulässig.
Wenn eine SQL-Anweisung mit optimistischem Sperren ausgeführt wird, kann sie nicht statisch ausgeführt werden.
Daher erfasst pureQuery Runtime keine Anweisungen, die mit optimistischem Sperren ausgeführt werden. Die Anweisungen werden nicht von den
pureQuery Runtime-Optionen
allowDynamicSQL und
capturedOnly beeinflusst.
Optimistisches Sperren wird durch folgende Methoden aktiviert:
DB2Connection.prepareDB2OptimisticLockingQuery
DB2Statement.executeDB2OptimisticLockingQuery
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