Autor Beitrag
0xDEAD
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25

Win 7
C# (VS 2010 Professional)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 148
Erhaltene Danke: 2

Windows 7
Delphi XE3 Pro + HTML5Builder
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25

Win 7
C# (VS 2010 Professional)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25

Win 7
C# (VS 2010 Professional)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25

Win 7
C# (VS 2010 Professional)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 02.12.10 10:38 
user profile icon0xDEAD hat folgendes geschrieben Zum zitierten Posting springen:
Meine Idee ist halt eine ADO-Table oder BDE-Table in meine Anwendung zu packen.
:shock:
Willst du Probleme lösen oder welche produzieren...
Nimm alles, nur nicht die BDE...

user profile icon0xDEAD hat folgendes geschrieben Zum zitierten Posting springen:
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.
Nein, das geht schon so einfach. ;-)

Die Frage ist nur, was du für Auswertungen hast, dass du dafür unbedingt SQL brauchst. :gruebel:
0xDEAD Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25

Win 7
C# (VS 2010 Professional)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 02.12.10 10:55 
user profile icon0xDEAD hat folgendes geschrieben Zum zitierten Posting springen:
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.

user profile icon0xDEAD hat folgendes geschrieben Zum zitierten Posting springen:
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.)

user profile icon0xDEAD hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25

Win 7
C# (VS 2010 Professional)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Do 02.12.10 15:53 
SQL mit CSV?
Hier (TJanSQL):
www.jansfreeware.com/jfdelphi.htm

_________________
Na denn, dann. Bis dann, denn.
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Do 02.12.10 15:58 
user profile iconalzaimar hat folgendes geschrieben Zum zitierten Posting springen:
SQL mit CSV?
Hier (TJanSQL):
www.jansfreeware.com/jfdelphi.htm


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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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. :nixweiss:
0xDEAD Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25

Win 7
C# (VS 2010 Professional)
BeitragVerfasst: Mo 06.06.11 09:21 
Zitat:

SQL mit CSV?
Hier (TJanSQL):
www.jansfreeware.com/jfdelphi.htm


Das hat es gebracht. War genau was ich gesucht habe. Danke!