Indique si l'application doit être autorisée à exécuter en mode dynamique toute
instruction SQL non capturée dans un fichier pureQueryXML ou capturée mais sans définition d'accès.
Cette propriété s'applique uniquement à une application lorsque executionMode est défini sur STATIC.Cette propriété peut posséder les valeurs suivantes :
- TRUE
- L'application exécute les instructions SQL non capturées en mode dynamique. Elle
exécute également dans ce mode toute instruction SQL capturée dans un fichier pureQueryXML
et l'instruction est configurée sans définition d'accès. pureQuery Runtime
détermine si l'accès à une instruction SQL dans un fichier pureQueryXML est défini
à partir de l'attribut isBindable. Les valeurs
de l'attribut sont TRUE (l'instruction a une définition d'accès) et FALSE (l'instruction n'a pas de définition d'accès).
Il s'agit de la valeur par défaut.
Vous pouvez choisir de ne pas définir allowDynamicSQL sur TRUE si vous voulez que l'application émette
des exceptions SQLExceptions pour vous aider à trouver les instructions SQL que vous n'avez
pas encore capturées ou qui restent sans définition d'accès.
- FALSE
- pureQuery émet une exception lorsque les méthodes utilisent
une instruction SQL non capturée ou sans définition d'accès. Voici certaines méthodes qui peuvent provoquer une exception pour cette raison :
- Pour les applications Java :
- Connection.prepareStatement()
- Statement.addBatch()
- Statement.execute()
- Statement.executeQuery()
- Statement.executeUpdate()
- Pour les applications CLI :
- SQLPrepare()
- SQLExecute()
- SQLExecDirect()
Remarque : Si la propriété
allowDynamicSQL est définie sur TRUE, les instructions SQL SET définissant des registres spéciaux ou les méthodes de connexion JDBC entraînant la définition de registres spéciaux ne sont pas limités par pureQuery Runtime. Les instructions sont toujours autorisées que l'instruction se trouve ou non dans
le fichier pureQueryXML.
Si une instruction SQL est exécutée
avec le verrouillage optimiste, elle ne peut pas être exécutée de façon statique.
Par conséquent, pureQuery Runtime ne capture pas des instructions qui sont exécutées
avec le verrouillage optimiste. Les instructions ne sont pas concernées par les options
allowDynamicSQL ou
capturedOnly de pureQuery Runtime.
Le verrouillage optimiste est activé par les méthodes suivantes :
DB2Connection.prepareDB2OptimisticLockingQuery
DB2Statement.executeDB2OptimisticLockingQuery
Le tableau suivant présente les combinaisons de
capturedOnly, executionMode et
allowDynamicSQL ainsi que les opérations résultantes :
Tableau 1. Combinaisons capturedOnly, executionMode et allowDynamicSQL
et opérations résultantes :capturedOnly |
executionMode |
allowDynamicSQL |
Instruction SQL correspondante |
Résultat |
TRUE |
STATIC |
TRUE |
OUI |
isBindable = True : exécution de l'instruction SQL en mode statique isBindable
= False : exécution de l'instruction SQL en mode dynamique
|
TRUE |
STATIC/DYNAMIC |
TRUE/FALSE |
NO |
Renvoie une erreur |
TRUE |
STATIC |
FALSE |
OUI |
isBindable = True : exécution de l'instruction SQL en mode statique isBindable
= False : renvoi d'une erreur
|
TRUE |
DYNAMIC |
TRUE/FALSE |
OUI |
Exécution de l'instruction SQL |
FALSE |
STATIC |
TRUE |
OUI |
isBindable = True : exécution de l'instruction SQL en mode statique. isBindable
= False : exécution de l'instruction SQL en mode dynamique
|
FALSE |
STATIC |
TRUE |
NO |
Exécution de l'instruction SQL en mode dynamique |
FALSE |
STATIC |
FALSE |
OUI |
isBindable = True : exécution de l'instruction SQL en mode statique. isBindable
= False : renvoi d'une erreur
|
FALSE |
STATIC |
FALSE |
NO |
Renvoie une erreur |
FALSE |
DYNAMIC |
TRUE/FALSE |
YES/NO |
Exécution de l'instruction SQL |
Notes
d'utilisation de l'interface CLI DB2
et d'IBM Data Server Driver
Lors de l'utilisation de l'interface CLI DB2 ou
d'IBM® Data Server Driver avec
pureQuery Runtime, vous pouvez utiliser la propriété pureQuery Runtime comme mot clé de configuration.
- Syntaxe de mot clé CLI IBM
- allowDynamicSQL = TRUE | FALSE
- Syntaxe de configuration d'IBM Data Server
Driver
- < parameter name="allowDynamicSQL" value="TRUE | FALSE"
/>
- Mot clé de chaîne de connexion équivalent d'IBM
Data Server Provider for .NET
- N/A