![]() |
Datenbank: TinyDB • Zugriff über: lokal
TinyDB und SQL?
Hallo,
ich habe mit TinyDB eine Datenbank, in der Buchungen verzeichnet sind. Ungefähr so: Nr. Datum Bestand 10155643 14.10.2005 -1 10155644 14.10.2005 -1 10155643 16.10.2005 -1 10155645 17.10.2005 -1 So, nun wollte ich eigentlich per SQL Befehl alle Buchungen zwischen zwei Datumsangaben (beispielsweise zw. 14. und 17.10) auflisten und zusätzlich die doppelten oder dreifachen Nummern/Buchungen zusammenzählen, so das im obigen Beispiel folgendes rauskommt: Nr. Bestand 10155643 -2 10155644 -1 10155645 -1 Aber ich kriege das nicht hin. Ich weiß, der SQL Text muss irgendwie mit WHERE und beim Datum was mit BETWEEN. Aber mir scheint, das dieses TinyDB kein SQL unterstützt. Wie geht das? Falls das mit TinyDB nicht möglich ist, würde ich das auch anders machen, nur muss ich dann die Tabellen dringend konvertieren können (beispielsweise MySQL oder so), da dort schon wichtige Daten drin stehen. Ich hoffe Ihr könnt mir helfen... |
Re: TinyDB und SQL?
Hmm, anscheinend scheint TinyDB kein SQL zu unterstützen.
Zumindest habe ich auf der Homepage des Herstellers nichts gefunden. Kann ich denn die Tabellen die ich jetzt habe irgendwie nach MySQL konvertieren/kopieren? |
Re: TinyDB und SQL?
Ja, TinyDB unterstützt wirklich kein SQL, ich hatte es auch mal in Verwendung. (und die TinyDB ist wirklich sehr langsam, seit dem ich andere Datenbanken im Vergleich kenne)
Da TinyDB ein eigenes Format bei seinen Tabellen hat (und diese alle in eine Datei schreibt), wird wahrscheinlich kein fertiges Konvertierungsprogramm zu finden sein. Bastel dir doch einfach selbst ein Programm, in das du sowohl die TinyDB-Komponenten, als auch die Komponenten deiner neuen Datenbank aufrufst und kopiere dann Zeile für Zeile rüber. Falls Du eine neue, SQL-fähige Datenbank suchst, die ebenfalls alle Tabellen gemeinsam in eine Datei schreiben kann, empfehle ich ![]() ![]() Sonst gibt es auch noch die "großen" Datenbanken, die du aber auch "embedded" zum Laufen bringen kannst, wie: ADS, NexusDB, Firebird, etc. Gruß Pfoto |
Re: TinyDB und SQL?
Danke, dann habe ich ja bezüglich SQL-Aufrufe mit TinyDB Gewißheit!
Hmm, wie kann ich mir das Vorstellen, "mir selbst ein Konvertierungsprogramm zu basteln"? Klar, beide Komponenten. Aber dann??? Ich werde wahrscheinlich den MS SQL Server nehmen, da wir den in der Firma auch Laufen haben. |
Re: TinyDB und SQL?
Letztendlich würdest du bei meiner genannten Variante Zeile für Zeile deiner TinyDB-Tabellen aufrufen und den Inhalt der neuen Tabelle (also in der anderen DB) übertragen, also etwa so:
Delphi-Quellcode:
Vorher natürlich die gleiche Strukur in den Ziel-Tabellen herstellen.
while not QuellTabelle.EOF do
begin with ZielTabelle do begin Append; // neue Zeile // Beispiel FieldByName('Spaltenname').AsInteger:= QuellTabelle.FieldByName('Spaltenname').AsInteger; ... // hier weitere Zeilen übertragen Post; // speichern end; Next; // Zum nächsten Datensatz der QuellTabelle springen end; Sicherlich könntest du auch jede Tabelle als CSV-Datei abspeichern und dann in die Zieldatenbank einlesen. Ich weiß jetzt aber nicht, ob TinyDB den Export als CSV schon integriert hat oder ob du dies auch selbst programmieren müsstest. Das Einlesen geschähe dann auch per CSV. Das wären meine Vorschläge. Vielleicht wissen die echten Profis noch was Besseres... Auf jeden Fall lohnt sich die Arbeit, das SQL die Filterungen einfach viel komfortabler macht. Gruß Pfoto |
Re: TinyDB und SQL?
Viieeeeleeen Daaaank!
Ich bin mehr als begeistert von den kompetenten Menschen hier in diesem wundervollen Forum :kiss: ("schleim") :hello: :dp: Aber mal im Ernst, ich habe mir jetzt ein "Migrations-Tool" geschrieben, welches es (nach ca. 4 Stunden Programmier-Arbeit :gruebel: :wall: ) schafft, meine TinyDB-Tabellen zu öffnen, konvertieren und an den MS SQL Server 2000 zu übertragen. Nun muss ich nur noch mein bestehendes Programm, zu dem die Tabellen gehören, umschreiben. Aber das nehme ich zum Anlass, eine "zweite Version" rauszubringen... :-D Vielen, vielen, vielen Dank nochmal an alle!!!! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 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