Les paramètres de position sont spécifiés par leur ordre dans la requête. Les paramètres nommés sont spécifiés par leurs noms. Lorsque vous utilisez des paramètres positionnels, vous devez les ajouter dans le même ordre que celui utilisé dans la requête. Si vous souhaitez utiliser la même valeur plus d'une fois, vous devez l'ajouter plusieurs fois en tant que paramètres distincts. Lorsque vous utilisez des paramètres de noms, vous pouvez les ajouter dans l'ordre de votre choix, et un paramètre peut être utilisé plusieurs fois dans la requête.
Par exemple, si vous avez une requête qui recherche dans plusieurs domaines, en utilisant des paramètres de position, il pourrait ressembler à ceci:
select u.UserId, u.UserName
from FormumUser u
where u.UserName like ? or u.Email like ? or u.Address like ?
Vous devez ajouter la chaîne de recherche trois fois en tant que paramètres séparés. L'utilisation de noms des paramètres, il pourrait ressembler à:
select u.UserId, u.UserName
from FormumUser u
where u.UserName like @find or u.Email like @find or u.Address like @find
alors vous n'ajouter un paramètre, que la requête peut utiliser le même paramètre dans trois endroits.
(La syntaxe exacte pour l'utilisation des paramètres dans la requête du cours varie en fonction de quelle solution base de données que vous utilisez.)
désolé de ne pas comprendre. quel indice dans la clause? et quels tableaux? pouvez-vous me dire ce que la fonction ci-dessus va faire? Je ne comprends toujours pas le u.id =? 1 partie. –
'? 1' est un * espace réservé * dans la définition de la requête. Au moment de l'exécution, il sera remplacé par la première valeur de la liste des valeurs de paramètre. Dans l'exemple donné, '? 1' sera remplacé par 'Arnold' lorsque la requête sera exécutée. Le second exemple utilise des * paramètres nommés * dans le même but, ainsi ': nom d'utilisateur' sera remplacé par la valeur liée à 'nom d'utilisateur' dans la liste des paramètres d'exécution, dans ce cas également 'Arnold'. – DaveE
@DaveE alors qu'est-ce qu'un? seul, comme dans les exemples que j'ai trouvés? Est-ce que fournir un nombre comme? 1 vous permet de les déclarer hors séquence dans la requête? – Brabster