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