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