Partager via


Comment récupérer des jeux de schémas à partir du système de fichiers hôte

Quand un HostFileConnection est ouvert, vous pouvez récupérer des informations de schéma sur les données cibles à l’aide de la GetSchema méthode . GetSchema retourne un DataTable objet rempli avec les lignes et les colonnes qui contiennent les informations de schéma de la cible de la connexion actuelle.

En outre, lorsqu’un DBDataReader est ouvert, vous pouvez récupérer des informations de schéma sur le jeu de résultats actuel à l’aide de la GetSchemaTable méthode . GetSchemaTable retourne un DataTable objet rempli de lignes et de colonnes qui contiennent les informations de schéma pour le jeu de résultats actuel. L’objet DataTable contient une ligne pour chaque colonne du jeu de résultats. Chaque colonne de la ligne de la table de schéma est mappée à une propriété de la colonne retournée dans le jeu de résultats, où ColumnName est le nom de la propriété et la valeur de la colonne est la valeur de la propriété.

Pour récupérer des jeux de schémas à partir du système de fichiers hôte

  1. Ouvrez une connexion au système de fichiers hôte avec un appel à HostFileConnection.

  2. Appelez HostfileConnection.GetSchema pour récupérer les données de schéma.

Exemple

L’exemple de code suivant montre comment récupérer les jeux de schémas à partir d’un objet de connexion. Notez que les objets ETCMLogging et HostFileUtils sont des objets créés par le développeur qui fournissent des fonctionnalités de journalisation et d’utilitaire.

public void CNGetSchema(ETCMLogging.Logging logging, string host, string ccsid, string cnstring, HostFileUtils.Utils.HostFileType hostfiletype)  
        {  
            HostFileUtils.Oledb oledb = new HostFileUtils.Oledb();  
            HostFileUtils.Utils u = new HostFileUtils.Utils();  
            logging.LogInfo(host);  
            try  
            {  
                // Create connection.  
                HostFileConnection cn = oledb.CreateConnection(logging);  
                cn.ConnectionString = cnstring;  
                DataTable dt = cn.GetSchema();  
                if (dt.HasErrors)  
                {  
                    logging.LogFail("returned datatable has errors");  
                }  
                // Open the connection.  
                logging.LogInfo("Open Connection");  
                cn.Open();  
                DataTable dt2 = cn.GetSchema();  
                if (dt2.HasErrors)  
                {  
                    logging.LogFail("returned datatable has errors");  
                }  
                int rowcnt = dt.Rows.Count;  
                for (int i = 0; i < rowcnt; i++)  
                {  
                    int colcnt = dt.Rows[i].ItemArray.Length;  
                    for (int o = 0; o < colcnt; o++)  
                    {  
                        u.CompareValues(dt.Rows[i][o].ToString(), dt2.Rows[i][o].ToString(), logging);                          
                    }  
                }  
                // Close the open connection.  
                cn.Close();  
            }  
            catch (Exception e)  
            {  
                logging.LogInfo(e.Message);  
                logging.LogFail(e.StackTrace);  
            }  
        }  

Voir aussi

Récupération d’informations dans le système de fichiers hôte
Adaptateur BizTalk pour la configuration de fichiers d’hôte