如何从主机文件系统检索架构集

打开 HostFileConnection 时,可以使用 GetSchema 方法检索有关目标数据的架构信息。 GetSchema 返回一个 DataTable 对象,该对象填充了包含当前连接的目标的架构信息的行和列。

此外,在 DBDataReader 打开的情况下,可以使用 GetSchemaTable 方法检索关于当前结果集的架构信息。 GetSchemaTable 返回一个 DataTable 用包含当前结果集架构信息的行和列填充的对象。 DataTable 对象包含结果集的每一列对应的一条记录。 模式表行的每一列都映射到结果集中返回的列属性,其中 ColumnName 是属性名称,而该列的值则是属性的值。

从主机文件系统检索架构集

  1. 通过调用HostFileConnection,打开与主机文件系统的连接。

  2. 调用 HostfileConnection.GetSchema 以检索架构数据。

示例:

下面的代码示例演示如何从连接对象检索架构集。 请注意,ETCMLogging 和 HostFileUtils 对象是开发人员创建的对象,可提供日志记录和实用工具功能。

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);  
            }  
        }  

另请参阅

从主机文件系统检索信息
用于主机文件的 BizTalk 适配器配置