Re: Messdaten in DB speichern
Liste der Anhänge anzeigen (Anzahl: 1)
huups, Nachricht geschrieben und nicht abgeschickt, also hier nochmal:
@supermuckl & jelly die Daten kommen von einem Eyetracker - ein sehr teures Gerät, mit dem man messen kann wo Menschen auf einem Bildschirm (oder sonstwo) hinschauen. Das ganze kann man z.B. für usability tests verwenden. Da man da aber mit meheren Personen arbeitet ist die Verwaltung in einer richtigen DB mit Querys schon sehr wünschenswert. Also nochmal: Mein problem ist, wie ich die daten aus dem Hauptspeicher möglichst schnell in eine lokale DB bekomme, damit ich später schön mit Querys etc damit arbeiten und meine Daten auswerten kann. Eine, der Auswertungen habe ich mal hier angehängt. |
Re: Messdaten in DB speichern
Zitat:
|
Re: Messdaten in DB speichern
Das würde aber mein Problem nicht lösen, dass während einer Datenaufzeichnung keine Festplattenzugriffe stattfinden sollen - siehe Erklärung oben.
|
Re: Messdaten in DB speichern
Zitat:
|
Re: Messdaten in DB speichern
Hallo,
ich würde folgenden Varinate vorschlagen verwende ein TObjectList - das Item enthält die Messdatenstruktur (Datum, Zeit, Messnummer, Messwert1, Messwert2, etc.) (das geht schnell und man kann es auch threadsicher programmieren) (oder doch eine TStringListe - da musst du mal Zeitmessungen machen) Nach dem Mess-Ende diese Liste in einen File ablegen Anschließend die Datei über einem "bulk copy" in die MSDE reinladen mit dem Tool bcp.exe (das geht auch wieder fix, wenn die Dateistruktur gleich der Tabellenstruktur ist) Wenn du Multithreading verwendest möchtest , könntest du beides gleichzeitig anwenden und "nonstop" Messreihen fahren 1ter Thread nimmt Messung auf und legt die Daten in die TObjectList/TStringList 2ter Thread verwaltet die Messreihen und erzeugt in 1000er oder 10000er die Datei 3ter Thread verwaltet das Löschen der Objectlist bereits übertragener Daten (dafür brauchst du ein Löschkennzeichen im Item) 4ter Thread führt den "bulk copy" durch Ich würde mich nicht mit ADO oder der MSAccess abgeben (weil die Schnittstelle zu langsam ist), eher würde ich eine DBase (.dbf) Datei verwenden wo gleich die Messdaten reingeschrieben werden (weil dies einfach mit DBase schneller geht) ( nicht über die BDE ((da ist auch zuviel zwischen drin)) eher http://sourceforge.net/projects/tdbf) (nebenbei, viele Industrieschnittstellen verwenden DBase als Datenbankaustauschformat, weil es einfach, schnell und netzwerktauglich ist) wenn's mit "ADS Advantage Local Server" geht, soll es genau so gut sein (wichtig ist, das die Abtastung von 8ms erhalten bleibt) Anschließend die Daten in einen SQL-Server deiner Wahl importieren - für eine komfortable und schnelle Auswertungsmöglichkeit Einen Ringbuffer wie hier vorgeschlagen würde ich nicht empfehlen, da du nie weißt ob die Daten überrollt werden Außerdem ist die Verwaltung von einem Ringbuffer auch nicht ganz ohne - wenn gleichzeitig 2 Prozesse lesend oder schreiben darauf zugreifen Eine eigene Datenbank macht wenig sinn, weil es genügend Alternativen für dein Problem gibt |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz