![]() |
"Offline" TDataSet (Erledigt) --> MemoryData
Hi!
Ich habe wieder einmal eine seltsame Frage :angle2: Ich möchte als Funktionsparameter ein TDataSet übergeben, das nicht mit einer Datenmenge verknüpft ist. Gründe: -Die Funktion soll eine Dynamische anzahl Felder erhalten -Die Felder können von beliebigem Typ sein (Variant, Fieldtype etc.) -Die Anzahl Datensätze soll Dynamisch sein (Tabelle) -Die Funktion soll DB-Unabhängig sein Ich will also eine Tabelle als Parameter übergeben. Die Tabelle ist immer sehr klein (2*2 bis ca. 12*4). Ein TDataSet kann ich nicht verwenden, da ich ja keine Datenbank verknüpft habe. Meine Frage: Ist es möglich, eine Tabelle "im Speicher" zu erstellen und als Parameter an eine Funktion zu übergeben? Es sollte sich nach möglichkeit um ein unabhängiges Format handeln. Ich habe mir bereits überlegt, dazu eine eigene Klasse zu schriben (Array of Fields und ein Array mit Datensätzen), doch das würde mich natürlich viel Zeit kosten. ...Oder bin ich wieder einmal auf dem Holzweg? :gruebel: Danke fürs Grübeln :thuimb: |
Re: "Offline" TDataSet
Schau mal
![]() ...:cat:... |
Re: "Offline" TDataSet
Du möchtest eine Memory-Table oder Memory-Dataset Komponente haben.
Es gibt diverse Freeware Komponenten dieser Art; z.B. in RX-Lib und in JVCL. Oder auch einzeln: ![]() |
Re: "Offline" TDataSet
Es geht um eine Import funktionen:
Code:
Ich will bei allen Importprozeduren (ca. 6) die gleiche Schnitstelle, nämlich eine Tabelle (DataSet).
[Zu importierendes File]
| | V Importprozedur | | V Eigene Klasse Die Prozeduren sollen die Werte mit ihren Typen und Namen Liefern. Bei Torry gibt es diverse Komponente die ein Dataset in etwas anderes umwandeln, das will ich aber nicht. Ich will ein Dataset "füllen", und übergeben. Ich hoffe ich habe mich einigermassen klar ausgedrückt. Gibt es vieleicht eine ähnliche klasse wie DataSet, die man füllen kann? (So eine Art StringGrid, mit verschiedenen FeldTypen) Aber danke für den Link! :!: [EDIT] Ich werde mir die MemTables ansehen, danke! Eledigt: Die Komponente TJvMemoryData erfüllt meine Anforderungen. Das Package ist auf ![]() |
Re: "Offline" TDataSet
Zitat:
Wenn du einer Procedure ein Objekt der Klasse TDataset übergibst, dann spürt die Procedure keinen Unterschied, ob es sich um TTable, TQuery, TADOTable, TADODataset, TADOQuery, RxMemoryDataset oder sonst einer von TDataset abgeleiteten Komponente handelt. Es gibt aber doch einen Unterschied: Ein Objekt der Klasse TTable kann ohne Datenbank nicht geöffnet werden; eine Memory-Table aber sehr wohl. Also brauchst du definitiv eine Memory-Table. Andererseits möchte die Memory-Table auch mit Daten gefüllt werden (Bei einer Memory-Table kannst du zur Entwicklungszeit nur die Feldnamen/Datentypen festlegen). Hier kommen die Import/Export Komponenten ins Spiel, die dir Sakura genannt hat. Ein Import-Komponente liest z.B. eine Datei im Fixed-ASCII Format und spiechert die Daten in einem von TDataset abgeleiteten Objekt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz