Freigeben über


So rufen Sie Schemasätze aus dem Hostdateisystem ab

Wenn ein HostFileConnection Steuerelement geöffnet ist, können Sie Schemainformationen zu den Zieldaten mithilfe der GetSchema Methode abrufen. GetSchema gibt ein DataTable Objekt zurück, das mit den Zeilen und Spalten gefüllt ist, die die Schemainformationen des Ziels der aktuellen Verbindung enthalten.

Darüber hinaus können Sie während eine DBDataReader geöffnet ist, Schema-Informationen zur aktuellen Ergebnismenge mithilfe der GetSchemaTable Methode abrufen. GetSchemaTable gibt ein DataTable Objekt zurück, das mit Zeilen und Spalten gefüllt ist, die die Schemainformationen für das aktuelle Resultset enthalten. Das DataTable Objekt enthält eine Zeile für jede Spalte des Resultsets. Jede Spalte einer Schematabellenzeile entspricht einer Eigenschaft der Spalte, die im Resultset zurückgegeben wird, wobei ColumnName der Name der Eigenschaft ist und der Wert der Spalte den Wert der Eigenschaft darstellt.

So rufen Sie Schemasätze aus dem Hostdateisystem ab

  1. Öffnen Sie eine Verbindung mit dem Hostdateisystem mit einem Aufruf von HostFileConnection.

  2. Rufen Sie den Aufruf HostfileConnection.GetSchema auf, um die Schemadaten abzurufen.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie die Schemasätze aus einem Verbindungsobjekt abgerufen werden. Beachten Sie, dass die ETCMLogging- und HostFileUtils-Objekte vom Entwickler erstellte Objekte sind, die Protokollierungs- und Hilfsfunktionen bereitstellen.

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

Siehe auch

Abrufen von Informationen aus dem Hostdateisystem
BizTalk-Adapter für die Konfiguration von Hostdateien