014
25.02.2007, 16:13 Uhr
Uwe
C/C++ Master (Administrator)
|
Hallo,
Zitat von Eroli: |
also lade ich ALLE Daten in ein DataSet und filter die dann erst?
|
Genau.
Zitat von Eroli: |
Ist das nicht Leistungsfressend gelöst?
|
Die Daten befinden sich dann im Arbeitsspeicher. Ein DataSet ist im prinzip nichts anderes als ein Xml-File.
Code: |
<?xml version="1.0" standalone="yes"?> <xs:schema id="dsPlantEvent" targetNamespace="http://www.tempuri.org/dsPlantEvent.xsd" xmlns:mstns="http://www.tempuri.org/dsPlantEvent.xsd" xmlns="http://www.tempuri.org/dsPlantEvent.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified"> <xs:element name="dsPlantEvent" msdata:IsDataSet="true" msdata:Locale="de-DE"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element name="DL_ALLEVENTS"> <xs:complexType> <xs:sequence> <xs:element name="EREIGNIS" type="xs:string" minOccurs="0" /> <xs:element name="FK_STAENTE_STANDID" type="xs:decimal" minOccurs="0" /> <xs:element name="LETZTESEREIGNIS" type="xs:dateTime" minOccurs="0" /> <xs:element name="PK_ALLEVENTSID" type="xs:decimal" /> <xs:element name="DAUER" type="xs:decimal" minOccurs="0" /> <xs:element name="STARTDGRUNDWARTUNG" type="xs:dateTime" minOccurs="0" /> <xs:element name="ENDEGRUNDWARTUNG" type="xs:dateTime" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> <xs:unique name="Constraint1" msdata:PrimaryKey="true"> <xs:selector xpath=".//mstns:DL_ALLEVENTS" /> <xs:field xpath="mstns:PK_ALLEVENTSID" /> </xs:unique> </xs:element> </xs:schema>
|
Das ist im Prinzip ähnlich Deiner Variante, nur dass bei Dir die Daten direkt im XML-Format gespeichert werden. Hier ist eigentlich nur die Tabellenstruktur und deren Beziehung abgebildet (s. unique Tag). Zur Laufzeit wird diese Tabelle gefüllt und stellt eigentlich ein Memory-Cache dar. Wird z.B. die Form oder Webseite geschlossen, dem das Dataset gehört wird intern die .Dispose Methode des ds aufgerufen, d.h. der Speicher wird freigegeben (oder auch nicht ) -- "Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."
Bis dann... Uwe Dieser Post wurde am 25.02.2007 um 16:15 Uhr von Uwe editiert. |