SQLSetConnectOption, mappage

Quand odbc 2. l’application x appelle SQLSetConnectOption via un pilote ODBC 3*.x*, l’appel à

SQLSetConnectOption(hdbc, fOption, vParam)  

se traduit comme suit :

  • Si fOption indique un attribut de connexion défini par ODBC qui nécessite une chaîne, le Gestionnaire de pilotes appelle

    SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, SQL_NTS)  
    
  • Si fOption indique un attribut de connexion défini par ODBC qui retourne une valeur entière de 32 bits, le Gestionnaire de pilotes appelle

    SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, 0)  
    
  • Si fOption indique un attribut de connexion défini par le pilote, le Gestionnaire de pilotes appelle

    SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, BufferLength)  
    

Dans les trois cas précédents, l’argument ConnectionHandle est défini sur la valeur dans hdbc, l’argument Attribute est défini sur la valeur dans fOption et l’argument ValuePtr est défini sur la même valeur que vParam.

Étant donné que le Gestionnaire de pilotes ne sait pas si l’attribut de connexion 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 BufferLength de SQLSetConnectAttr. Si le pilote a défini une sémantique spéciale pour les attributs de connexion définis par le pilote et doit être appelé à l’aide de SQLSetConnectOption, il doit prendre en charge SQLSetConnectOption.

Si odbc 2. L’application x appelle SQLSetConnectOption pour définir une option d’instruction spécifique au pilote dans un pilote ODBC 3*.x*, et l’option a été définie dans odbc 2. x version 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 à SQLSetConnectOption, le Gestionnaire de pilotes appelle SQLSetConnectAttr avec l’argument StringLength défini sur 0.

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

Définition des options d’instruction au niveau de la connexion

Dans ODBC 2. x, une application peut appeler SQLSetConnectOption pour définir une option d’instruction. Lorsque cela est fait, le pilote établit l’option d’instruction en tant que valeur par défaut pour toutes les instructions allouées ultérieurement pour cette connexion. Il est défini par le pilote si le pilote définit l’option d’instruction pour toutes les instructions existantes associées à la connexion spécifiée.

Cette fonctionnalité a été déconseillée dans ODBC 3*.x*. Les pilotes ODBC 3*.x* doivent uniquement prendre en charge le paramètre ODBC 2. Attributs d’instruction x au niveau de la connexion s’ils souhaitent utiliser ODBC 2. x applications qui effectuent cette opération. Les applications ODBC 3*.x* ne doivent jamais définir des attributs d’instruction au niveau de la connexion. Les attributs d’instruction ODBC 3*.x* ne peuvent pas être définis au niveau de la connexion, à l’exception des attributs SQL_ATTR_METADATA_ID et SQL_ATTR_ASYNC_ENABLE, qui sont à la fois des attributs de connexion et des attributs d’instruction, et peuvent être définis au niveau de la connexion ou de l’instruction.