Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Avant qu’une application puisse exécuter une instruction, elle doit allouer un handle d’instruction. Pour ce faire, il appelle SQLAllocHandle avec le paramètre HandleType défini sur SQL_HANDLE_STMT et InputHandle pointant vers un handle de connexion.
Les attributs d’instruction sont des caractéristiques du handle d’instruction. Les exemples d’attributs d’instruction peuvent inclure l’utilisation de signets et le type de curseur à utiliser avec le jeu de résultats de l’instruction. Les attributs d’instruction sont définis avec SQLSetStmtAttr et leurs paramètres actuels sont récupérés à l’aide de SQLGetStmtAttr. Il n’est pas nécessaire qu’une application définisse tous les attributs d’instruction ; tous les attributs d’instruction ont des valeurs par défaut, et certains sont spécifiques au pilote.
Soyez prudent dans l’utilisation de plusieurs options d’instruction ET de connexion ODBC. L’appel de SQLSetConnectAttr avec fOption défini sur SQL_ATTR_LOGIN_TIMEOUT contrôle l’heure à laquelle une application attend une tentative de connexion en attendant d’établir une connexion (0 spécifie une attente infinie). Les sites qui ont des temps de réponse lents peuvent définir cette valeur élevée pour s’assurer que les connexions ont suffisamment de temps pour être terminées. Toutefois, l’intervalle doit toujours être suffisamment faible pour donner à l’utilisateur une réponse dans un délai raisonnable si le pilote ne peut pas se connecter.
L’appel de SQLSetStmtAttr avec fOption défini sur SQL_ATTR_QUERY_TIMEOUT définit un intervalle de délai d’attente de requête pour protéger le serveur et l’utilisateur contre les requêtes de longue durée.
L’appel de SQLSetStmtAttr avec fOption défini sur SQL_ATTR_MAX_LENGTH limite la quantité de données texte et d’image qu’une instruction individuelle peut récupérer. L’appel de SQLSetStmtAttr avec fOption défini sur SQL_ATTR_MAX_ROWS limite également un ensemble de lignes aux premières lignes n si c’est tout ce dont l’application a besoin. Notez que le paramètre SQL_ATTR_MAX_ROWS provoque l’émission d’une instruction SET ROWCOUNT sur le serveur. Cela affecte toutes les instructions Microsoft SQL Server, notamment les déclencheurs et les mises à jour.
Soyez prudent lorsque vous définissez ces options. Il est préférable que tous les handles d’instruction sur un handle de connexion aient les mêmes paramètres pour SQL_ATTR_MAX_LENGTH et SQL_ATTR_MAX_ROWS. Si le pilote passe d’un handle d’instruction à un autre avec des valeurs différentes pour ces options, le pilote doit générer les instructions SET TEXTSIZE et SET ROWCOUNT appropriées pour modifier les paramètres. Le pilote ne peut pas placer ces instructions dans le même lot que l’instruction SQL utilisateur, car l’instruction SQL utilisateur peut contenir une instruction qui doit être la première instruction dans un lot. Le pilote doit envoyer les instructions SET TEXTSIZE et SET ROWCOUNT dans un lot distinct, ce qui génère automatiquement un aller-retour supplémentaire au serveur.