如何从主机文件系统检索架构集
HostFileConnection
打开 时,可以使用 方法检索有关目标数据的GetSchema
架构信息。 GetSchema
返回一个 DataTable
对象,该对象填充了包含当前连接目标的架构信息的行和列。
此外,在 打开时 DBDataReader
,可以使用 方法检索有关当前结果集的 GetSchemaTable
架构信息。 GetSchemaTable
返回一个 DataTable
对象,该对象由包含当前结果集的架构信息的行和列填充。 对象 DataTable
包含结果集的每一列的一行。 架构表行的每一列都映射到结果集中返回的列的属性,其中 是 ColumnName
属性的名称,列的值是 属性的值。
从主机文件系统检索架构集
通过调用
HostFileConnection
打开与主机文件系统的连接。调用
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);
}
}