Il existe certains cas où une instruction SQL complète est inconnue jusqu'à l'exécution. Par exemple, les prédicats d'une clause WHERE peuvent dépendre des critères de recherche qu'un utilisateur définit. Dans de tels cas, lorsque vous appelez une méthode d'un objet Data, vous substituez une variable String pour l'instruction SQL.
Par exemple, supposez que vous souhaitiez que votre application autorise les utilisateurs à définir des critères pour lancer une requête sur un tableau contenant des enregistrements concernant vos projets dans votre service. Vous pouvez utiliser un code similaire à l'exemple suivant :
String columnList = ...
String searchPred = ...
String SQLstmt = "SELECT " + columnList + " FROM DEPT_SCHEMA.PROJ WHERE " + searchPred;
Iterator<Employee> empReport = db.queryIterator(SQLstmt, Employee.class);
Cependant, n'oubliez pas que lorsque vous créez des instructions SQL au cours de l'exécution, pureQuery ne peut pas contrôler la syntaxe des instructions avant la fin de l'exécution. Vous ne pouvez pas non plus tirer parti des performances de l'instruction SQL statique si vous utilisez une base de donnéesDB2.