Partager via


SQLSetStmtOption, mappage

Lorsqu’une application appelle SQLSetStmtOption via un pilote ODBC 3.x , l’appel à

SQLSetStmtOption(StatementHandle, fOption, vParam)  

se traduit comme suit :

  • Si fOption indique un attribut d’instruction odbc qui est une chaîne, le Gestionnaire de pilotes appelle

    SQLSetStmtAttr(StatementHandle, fOption, ValuePtr, SQL_NTS)  
    
  • Si fOption indique un attribut d’instruction ODBC défini qui retourne une valeur entière 32 bits, le Gestionnaire de pilotes appelle

    SQLSetStmtAttr(StatementHandle, fOption, ValuePtr, 0)  
    
  • Si fOption indique un attribut d’instruction défini par le pilote, le Gestionnaire de pilotes appelle

    SQLSetStmtAttr(StatementHandle, fOption, ValuePtr, BufferLength)  
    

Dans les trois cas précédents, l’argument StatementHandle est défini sur la valeur dans hstmt, l’argument Attribute est défini sur la valeur dans fOption et l’argument ValuePtr est défini sur la valeur vParam.

Étant donné que le Gestionnaire de pilotes ne sait pas si l’attribut d’instruction défini par le pilote a besoin d’une chaîne ou d’une valeur entière 32 bits, il doit passer une valeur valide pour l’argument StringLength de SQLSetStmtAttr. Si le pilote a défini une sémantique spéciale pour les attributs d’instruction définis par le pilote et doit être appelé à l’aide de SQLSetStmtOption, il doit prendre en charge SQLSetStmtOption.

Si une application appelle SQLSetStmtOption pour définir une option d’instruction spécifique au pilote dans un pilote ODBC 3.x et que l’option a été définie dans une version ODBC 2.x du pilote, une nouvelle constante de manifeste doit être définie pour l’option dans le pilote ODBC 3.x . Si l’ancienne constante de manifeste est utilisée dans l’appel à SQLSetStmtOption, le Gestionnaire de pilotes appelle SQLSetStmtAttr avec l’argument StringLength défini sur 0.

Lorsqu’une application appelle SQLSetStmtAttr pour définir SQL_ATTR_USE_BOOKMARKS sur SQL_UB_ON dans un pilote ODBC 3.x , l’attribut d’instruction SQL_ATTR_USE_BOOKMARKS est défini sur SQL_UB_FIXED. SQL_UB_ON est la même constante que SQL_UB_FIXED. Le Gestionnaire de pilotes transmet SQL_UB_FIXED au pilote. SQL_UB_FIXED a été déprécié dans ODBC 3.x, mais un pilote ODBC 3.x doit l’implémenter pour fonctionner avec les applications ODBC 2.x qui utilisent des signets de longueur fixe.

Pour un pilote ODBC 3.x , le Gestionnaire de pilotes ne vérifie plus si Option se trouve entre SQL_STMT_OPT_MIN et SQL_STMT_OPT_MAX, ou s’il est supérieur à SQL_CONNECT_OPT_DRVR_START.