Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TinyDB und SQL? (https://www.delphipraxis.net/55701-tinydb-und-sql.html)

CG2003 25. Okt 2005 18:09

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...

CG2003 26. Okt 2005 12:06

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?

Pfoto 26. Okt 2005 18:25

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
Absolute Database oder
Accuracer

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

CG2003 26. Okt 2005 21:35

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.

Pfoto 27. Okt 2005 08:04

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:
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;
Vorher natürlich die gleiche Strukur in den Ziel-Tabellen herstellen.

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

CG2003 28. Okt 2005 00:58

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