In rimacon omniSuite werden die am häufigsten genutzten Quellen wie CVS, XLS, XLSX direkt unterstützt (out-of-the-box). Für alle anderen Quellen besteht die Möglichkeit, die Quelle über C#-Scripte anzubinden.
Diese Anleitung gilt für:
return new FieldInfo[] { new FieldInfo() { Name="Name", OriginalTypeAsString="string", CmdbType=19, CmdbLength=-1, CmdbScale=0 }, new FieldInfo() { Name="Anzahl", OriginalTypeAsString="int", CmdbType=8 } };Liste von CmdbType-n:
Typ | CmdbType | CmdbLength | CmdbScale |
---|---|---|---|
Nummer (Gleitkommadaten) | 0 | 0 | 0 |
Zeichenfolge | 1 | > 0 oder -1 wenn unbegrentzt | 0 |
Datum | 2 | automatisch 20 | 0 |
Zeichenfolge (mehrzeilig) | 4 | > 0 oder -1 wenn unbegrentzt | 0 |
Nummer (ganzzahlig) | 8 | 0 | 0 |
Link | 10 | automatisch 256 | 0 |
Dezimal | 14 | 1-38 | 1-38 |
Datum und Zeit | 15 | 0 | 0 |
HTML (direkt) | 17 | 1-8000 | 0 |
Nummer (ganzzahlig 8-Byte) | 18 | 0 | 0 |
Zeichenfolge (Unicode) | 19 | > 0 oder -1 wenn unbegrentzt | 0 |
Zeichenfolge (mehrzeilig,Unicode) | 20 | > 0 oder -1 wenn unbegrentzt | 0 |
Als Beispiel führen wir ein einfaches SQL-Select gegen die aktuelle rimacon-Datenbank aus.
Hinweis: Dies dient nur zur Demonstration. Natürlich ist es für solche Quellen besser, Direkt-SQL zu nutzen.
Hier die einzelnen Code-Sektionen:
System.Data.dll
rimacon.cmdb.ExternalDataSet System.Data.SqlClient
System.Data.SqlClient.SqlConnection m_Conn = null; System.Data.SqlClient.SqlDataReader m_Reader = null;
string cs = "Data Source=!!!ANPASSEN!!!;Initial Catalog=rimacon;Trusted_Connection=yes;"; try { m_Conn = new System.Data.SqlClient.SqlConnection(cs); m_Conn.Open(); System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("select top 10 ANW_ID, ANW_Name1, ANW_Name2 from ANW order by ANW_ID", m_Conn); m_Reader = cmd.ExecuteReader(); return ""; // Fehlermeldung } catch(System.Exception e) { m_Reader = null; if (m_Conn != null) m_Conn.Close(); m_Conn = null; return e.Message; // Fehlermeldung }
if (m_Conn == null) return new FieldInfo[0]; return new FieldInfo[] { new FieldInfo() { Name = m_Reader.GetName(0), OriginalTypeAsString = m_Reader.GetFieldType(0).ToString(), CmdbType = 8 }, new FieldInfo() { Name = m_Reader.GetName(1), OriginalTypeAsString = m_Reader.GetFieldType(1).ToString(), CmdbType = 19, CmdbLength = 256 }, new FieldInfo() { Name = m_Reader.GetName(2), OriginalTypeAsString = m_Reader.GetFieldType(2).ToString(), CmdbType = 19, CmdbLength = 256 } };
if (m_Reader == null) return false; return m_Reader.Read();
errmsg = ""; if (m_Reader == null) return null; return m_Reader[index];
if (m_Reader != null) m_Reader.Close(); if (m_Conn != null) m_Conn.Close(); m_Reader = null; m_Conn = null;
Button "Vorschau" anklicken.
Die Quelle simulieren wir über einen fixen Datensatz.
rimacon.cmdb.ExternalDataSet
class Row { public string Country; public string Capital; public Row(string country, string capital) { Country = country; Capital = capital; } } List<Row> m_AllData = null; FieldInfo[] m_AllFields = null; int m_RowIndex = -1;
m_AllData = new List<Row>(); m_AllData.Add( new Row("Australia", "Canberra") ); m_AllData.Add( new Row("Austria", "Vienna") ); m_AllData.Add( new Row("Denmark", "Copenhagen") ); m_AllData.Add( new Row("Egypt", "Cairo") ); m_AllData.Add( new Row("Finland", "Helsinki") ); m_AllData.Add( new Row("Germany", "Berlin") ); m_AllData.Add( new Row("Italy", "Rome") ); m_AllData.Add( new Row("Japan", "Tokyo") ); m_AllFields = new FieldInfo[] { new FieldInfo() { Name = "Country", OriginalTypeAsString = "string", CmdbType = 19, CmdbLength = 100 }, new FieldInfo() { Name = "Capital", OriginalTypeAsString = "string", CmdbType = 19, CmdbLength = 100 } }; m_RowIndex = -1; return ""; // Fehlermeldung
return m_AllFields;
if (m_AllData == null || m_RowIndex + 1 >= m_AllData.Count) return false; m_RowIndex++; return true;
errmsg= ""; if (m_AllData == null || index < 0 || index >= 2) return null; if (index == 0) return m_AllData[m_RowIndex].Country; if (index == 1) return m_AllData[m_RowIndex].Capital; return null;
if (m_AllData != null) m_AllData.Clear(); m_AllData = null;
Button "Vorschau" anklicken.