| Autor |
Beitrag |
0xDEAD
      
Beiträge: 25
Win 7
C# (VS 2010 Professional)
|
Verfasst: Do 02.12.10 08:52
Moin,
ich hab bisher nur wenig Erfahrung mit Datenbanken und noch weniger mit Delphi Datenbanken. (BDE oder ADO, whatever).
Aber ich suche zur Zeit eine möglichst einfache Lösung eine CSV Datei mit Hilfe eines SQL-Query abzufragen.
Den SQL-Parser wollte ich möglichst nicht selber schreiben, deshalb hoffe ich, mir kann jemand eine Empfehlung geben.
Meine erste Idee war es lokal eine Datenbank zu erstellen, die CSV einzulesen und dann Queries auf die Datenbank zu machen.
Aber welche Komponente kann man dafür einsetzen?
Und wie sieht es mit der Performance aus?
Besten Dank für eure Hilfe!
|
|
DonManfred
      
Beiträge: 148
Erhaltene Danke: 2
Windows 7
Delphi XE3 Pro + HTML5Builder
|
Verfasst: Do 02.12.10 08:58
So richtig habe ich nicht verstanden, was Du da nun genau willst...
Willst Du
A. Daten aus einer DB lesen und in eine CSV-Datei schreiben?
B. Daten aus einer CSV lesen und in eine DB schreiben?
In beiden Fällen verstehe ich nicht, warum Du einen SQL-PARSER schreiben solltest (was du ja nicht willst) bzw. müsstest...
_________________ Gruss Manfred
|
|
0xDEAD 
      
Beiträge: 25
Win 7
C# (VS 2010 Professional)
|
Verfasst: Do 02.12.10 09:14
Eigentlich will ich nur mit einem SQL-Statement Daten einer CSV Datei auslesen.
Aber vermutlich geht sowas nicht.
Deshalb der Umweg die CSV in eine Datenbank einlesen und dann die Statements absetzen, um an die Daten zu kommen.
Meine CSV enthält Messwerte und für die Auswertung möchte ich variable Abfragen machen.
Ich hoffe, der Sachverhalt ist nun klar.
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 02.12.10 09:36
Muss es unbedingt eine CSV sein? Oder kannst du das Format bestimmen? Dann wäre XML mit XPath vielleicht sinnvoll (wenn die Datenmenge nicht allzu riesig ist).
Ja, ansonsten fiele mir noch ein, dass du eine eigene Datenquelle schreiben könntest, die aus der CSV liest. Ob dann auch die SQL-Befehle automatisch umgesetzt werden, weiß ich nicht.
|
|
0xDEAD 
      
Beiträge: 25
Win 7
C# (VS 2010 Professional)
|
Verfasst: Do 02.12.10 09:47
Leider ist es eine Sammlung von CSV ähnlichen Dateien und natürlich kann ich mir das Format nicht selber aussuchen.
Wäre ja auch zu einfach dann!
|
|
0xDEAD 
      
Beiträge: 25
Win 7
C# (VS 2010 Professional)
|
Verfasst: Do 02.12.10 10:25
Meine Idee ist halt eine ADO-Table oder BDE-Table in meine Anwendung zu packen.
Die Datenbank mit den Daten zu füllen und anschließend über SQL verschiedene Abfragen zur Auswertung der Testdaten machen.
Aber ich stell mir das wohl zu einfach vor.
Ich habe noch nie mit Delphi und Datenbanken gearbeitet.
Vielleicht kann ich diesen Aufwand auch sparen, aber ich kommt grad keine andere Idee, wie ich ein so starkes AbfrageTool zusammenbekomme.
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 02.12.10 10:38
|
|
0xDEAD 
      
Beiträge: 25
Win 7
C# (VS 2010 Professional)
|
Verfasst: Do 02.12.10 10:47
| Zitat: | | Nimm alles, nur nicht die BDE... |
Okay, dann halt nicht. Aber gibt's Empfehlungen?
| Zitat: | | Die Frage ist nur, was du für Auswertungen hast, dass du dafür unbedingt SQL brauchst. |
Naja, grundsätzlich kann es alles sein, das ist auch das Problem warum ich ein flexibles Interface brauche.
Aber für den Anfang haben wir hier etwa 10.000 Dateien mit etwa 20 Signalquellen und jeweils 1500-2000 Messwerten.
Und daraus möchte ich was sinnvolles rauskriegen, also gar nicht so einfach!
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 02.12.10 10:55
0xDEAD hat folgendes geschrieben : | | Okay, dann halt nicht. Aber gibt's Empfehlungen? |
Das genannte ADO wäre eine, aber es gibt auch kleine embedded Datenbanken, z.B. Firebird Embedded oder auch SQLite.
0xDEAD hat folgendes geschrieben : | | Naja, grundsätzlich kann es alles sein, das ist auch das Problem warum ich ein flexibles Interface brauche. |
Da ist eine darauf zugeschnittene eigene Abfragemöglichkeit oft aber besser als SQL. Einziger echter Vorteil von SQL ist, dass wenn die Daten in der DB sind es einfach zu benutzen geht. (Und wer SQL kann, kommt direkt klar.)
0xDEAD hat folgendes geschrieben : | | Aber für den Anfang haben wir hier etwa 10.000 Dateien mit etwa 20 Signalquellen und jeweils 1500-2000 Messwerten. |
Ändern sich die Messwerte laufend? Oder sind die so dann fest?
|
|
0xDEAD 
      
Beiträge: 25
Win 7
C# (VS 2010 Professional)
|
Verfasst: Do 02.12.10 10:59
| Zitat: | | Ändern sich die Messwerte laufend? Oder sind die so dann fest? |
Die sind dann fest. Also die Auswertung muss auch nicht online erfolgen.
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 02.12.10 11:04
Wenn es um Abfragen in den einzelnen Dateien (bzw. dann Tabellen) geht, reicht auch SQlite.
Bei der Anzahl der Messwerte lohnt sich dann aber auch schon Firebird Embedded, wenn die Messwerte alle in einer Tabelle landen oder untereinander verknüpft werden.
Und wenn diese auch gleich zentral erreichbar sein sollen, wären ADO und eine echte Firebird Datenbank eine gute Lösung.
|
|
zuma
      
Beiträge: 660
Erhaltene Danke: 21
Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
|
Verfasst: Do 02.12.10 11:51
Fürs arbeiten ganz ohne zu installierendes DB-system könnte dir evtl. ein (oder mehrere) TClientdataset helfen.
Dazu brauchst du ein ClientDataSet (Unit DBClient), dem du zuerst eine Struktur (z.b.Felder wie in CSV) verpasst und das dann mit den csv-Daten befülltst.
Das Clientdataset kann man dann zb. per Filter (z.b. 'Feld1 = 1 and Feld2 > 2') und
geschicktes durchlaufen der gefilterten Daten auch prima auswerten.
Nur mal so als Idee 
_________________ Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Do 02.12.10 15:53
_________________ Na denn, dann. Bis dann, denn.
|
|
zuma
      
Beiträge: 660
Erhaltene Danke: 21
Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
|
Verfasst: Do 02.12.10 15:58
Bei Klick auf den Link meldet mein Kaspersky
...
wurde von Web-Anti-Virus blockiert
Grund: Der Inhalt ist von einem Virus infiziert
...
_________________ Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
|
|
jaenicke
      
Beiträge: 19339
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 02.12.10 16:03
Das kommt bei Kaspersky schon mal vor. Mir hat auch vor einer Weile jemand gesagt es hielte meine Seite für virenverseucht (ich selbst nutze es nicht). Da war nix was auch nur ansatzweise was Besonderes gewesen wäre. 
|
|
0xDEAD 
      
Beiträge: 25
Win 7
C# (VS 2010 Professional)
|
Verfasst: Mo 06.06.11 09:21
Das hat es gebracht. War genau was ich gesucht habe. Danke!
|
|