Comportement ODBC

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 3 minutes de lecture
  • Après avoir testé le pilote ODBC, vous pouvez l’utiliser pour interroger votre base de données d’instance à partir de diverses applications clientes.

    Fonctions d’agrégat ODBC

    Le pilote ODBC tente de télécharger des données et d’appliquer des fonctions d’agrégat localement. Le pilote ODBC prend en charge les fonctions d’agrégation suivantes.

    • NOMBRE
    • SOMME
    • MIN.
    • MAX
    • MOY

    Activez le module d’extension Agrégat Web Service pour améliorer les performances des requêtes d’agrégat via le pilote ODBC.

    Valeurs de date et d’heure ODBC

    L’instance et la machine sur laquelle le pilote ODBC est installé peuvent utiliser deux fuseaux horaires différents. Les valeurs de date et d’heure renvoyées par le pilote ODBC correspondent au fuseau horaire local de l’application qui utilise le pilote, et non au fuseau horaire de l’instance ServiceNow.

    Assurez-vous d’effectuer une requête dans des fuseaux horaires précis pour l’instance et l’ordinateur qui héberge le pilote ODBC. GlideRecord effectue un filtrage basé sur le fuseau horaire de l’instance et le client ODBC est filtré en fonction du fuseau horaire Windows.

    Par exemple, une instance est à l’heure normale du Centre (CST) et le pilote ODBC est installé sur une machine qui est à l’heure normale du Pacifique (PST). Un incident est créé sur l’instance le 2014-05-20 10:00:00 et l’heure de création de l’incident est affichée dans l’interface utilisateur comme 10:00:00 pour les utilisateurs des deux fuseaux horaires. Toutefois, pour interroger cet incident par date et heure de création, un utilisateur sur l’ordinateur dans PST doit interroger 2014-05-20 08:00:00 au lieu de 2014-05-20 10:00:00.

    Les champs de durée et de type de minuteur sont renvoyés à l’aide du fuseau horaire UTC, à partir de la version ODBC 1.0.10. Consultez KB0583982 pour plus de détails sur ce changement.

    Valeurs d’affichage ODBC

    Vous trouverez ci-dessous quelques exemples d’utilisation et d’utilisation des valeurs d’affichage ODBC.

    • Affichez les valeurs dans les colonnes Choix et Référence :

      Lors de l’interrogation d’une colonne de type Choix, Référence, Durée ou Minuterie, une colonne supplémentaire avec le préfixe dv_ est disponible et contient la valeur d’affichage. Par exemple, vous pouvez sélectionner dv_caller_id pour renvoyer la valeur d’affichage sys_user.name du champ de référence à partir d’un enregistrement d’incident sans effectuer une autre demande à la table sys_user.

      Figure 1. Renvoyer la valeur d’affichage
      Renvoyer la valeur d’affichage
    • Afficher les valeurs dans les conditions de filtre :

      Les valeurs d’affichage peuvent également être utilisées dans une condition de filtre. Le pilote ODBC optimise la condition de requête et traite le filtre sur le serveur, par exemple en interrogeant la valeur d’affichage de sys_user pour le champ caller_id d’un incident à l’aide du nom du champ dv_caller_id .

      Figure 2. Afficher les valeurs dans les conditions de filtre
      Afficher les valeurs dans les conditions de filtre
    • Afficher les valeurs dans les requêtes d’agrégat :

      Les requêtes d’agrégat peuvent également tirer parti des valeurs d’affichage si vous les spécifiez dans la clause Grouper par ou où, par exemple, le regroupement dans le champ caller_id d’un incident, ainsi que la spécification d’un filtre pour celui-ci. La requête est optimisée en passant par le serveur.

      Figure 3. Afficher les valeurs dans les requêtes d’agrégat
      Afficher les valeurs dans les requêtes d’agrégat

    Interrogation des noms de tables et de colonnes

    Vous pouvez obtenir une liste de tables et de colonnes accessibles en fonction des ACL de lecture pour l’utilisateur effectuant la requête.

    • La requête suivante renvoie les noms de toutes les tables pour lesquelles l’utilisateur interrogé dispose d’un accès en lecture :

      Sélectionnez * dans oa_tables ;

    • Une fois que vous connaissez le nom de la table que vous souhaitez interroger, vous pouvez interroger les noms de toutes les colonnes pour lesquelles l’utilisateur a un accès en lecture. L’utilisateur effectuant l’interrogation doit avoir un accès en lecture à la fois à la table et aux colonnes.

      sélectionner * dans oa_columns où table_name='table_name' ;

    Remarque :
    Les tables oa_tables et oa_columns sont des tables ODBC internes. Ces tables sont accessibles uniquement via le pilote ODBC.

    Acheminement des appels ODBC vers la réplication en lecture

    Le routage des requêtes est effectué pour alléger la charge de la base de données primaire pour les requêtes SELECT qui prennent de nombreux cycles de processeur de base de données sur la base de données principale. Pour plus d’informations, reportez-vous à la section Présentation des bases de données de réplication en lecture ServiceNow.

    Pour acheminer les appels ODBC vers le réplica en lecture, accédez à Tout > Base de données secondaires > Catégories DB secondaires et définissez ODBC sur true.