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

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 适配器配置