AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Paradox-Datenbank-Probleme

Ein Thema von OrgFreak · begonnen am 5. Nov 2012 · letzter Beitrag vom 30. Nov 2012
Antwort Antwort
Seite 2 von 3     12 3      
Perlsau
(Gast)

n/a Beiträge
 
#11

AW: Paradox-Datenbank-Probleme

  Alt 6. Nov 2012, 01:10
Der Transfer klappt zum Beispiel schon mal nicht, wenn ich FileMaker nehme oder sonst so eine bekannte Datenbank. Also steh ich nun an: Nochmals von vorn alles beginnen, vergesse meine 3000 mühsam aufgebaute Datensätze mit Einbettung in ein Delphi-Programm.
Was genau bedeutet "klappt nicht"? Wer soll dir sagen können, was du falsch machst, wenn du niemandem erzählst, was du überhaupt machst. Konkret: Wie hast du denn versucht, deine Datensätze zu übertragen?

Wer hat denn ein Tool, mit dem ich meine Felder transferieren kann? Also einfach ist das ja nicht ohne Probleme.
Möchtest du jetzt lediglich die Felder transferieren oder auch die Datensätze? Grundsätzlich muß in der Zieldatenbank eine zur Quelldatenbank kompatible Struktur vorliegen, um Datensätze akurat transferieren zu können. Ich habe z.B. vor Jahren statt mit der BDE mit MS-Access angefangen, mich in Datenbankanwendungen einzuarbeiten. Später, als ich den Umgang mit Firebird einigermaßen beherrschte, habe ich mir ein Programm geschrieben, das eine neue Firebird-Datenbank mit der Struktur einer vorhandenen Access-Datenbank anlegt und die Datensätze überträgt. So habe ich jetzt alle meine alten Access-Datenbanken in moderner Firebird-Version vorliegen.

Ich kann auch nicht einfach eine andere Batterie in mein Auto einbauen und dann annehmen, dass das Auto läuft.
Das ist im Grunde gar kein so schlechter Vergleich, denn auch beim Portieren von Datensätzen in eine Datenbank anderen Typs mußt du so einiges selbermachen, weil z.B. gewisse Datentypen nur in der Quelldatenbank verfügbar sind.

Zum Vorschlag: Man speichert die Bilder auf der Festplatte und mit Referenz darauf: Das kann ja heiter werden, bei den vielen Grafik-Bildern mit variabler Grösse. Ich wollte bei den vielen Grafik-Feldern nur die 10 interessantesten nehmen, nicht die Gesamtmenge an verfügbaren Bildern. Dann hat man nur ein Inhaltsverzeichnis aber kein Programm mehr. Und die GigaBytes wachsen dann auch in den Himmel, wie zuerst bei meiner ersten Version, die bei 1600 Datensätzen den Geist aufgegeben hat.
Das verstehe ich nicht ganz:

1. Was hat denn die Größe der Grafiken damit zu tun, daß du sie statt in der Datenbank in einem eigenen Ordner speicherst und in der Datenbank dann nur den Speicherort verwaltest?

2. Was meinst du damit, daß man dann (wann?) "nur ein Inhaltsverzeichnis aber kein Programm mehr" habe?

3. Wie soll ich das verstehen, daß irgendwelche Gigabytes in den Himmel wachsen? Glaubst du, daß die Speicherung von Grafiken in Ordnern wesentlich mehr Platz benötigt als in einer Datenbank?

4. Was meinst du mit "bei 1600 Datensätzen den Geist aufgegeben"? Deine Anwendung? Deine Datenbank? Deine Festplatte? Ich betreibe z.B. eine Videoverwaltung mit Firebird, da sind ca. 10.000 Videos gespeichert (nicht die eigentlichen Video-Dateien), und zu jedem Film gehören ca. 5 bis 10 großformatige Grafiken. Die Datenbank ist derzeit ca. 8 Gigabyte groß und macht keine Probleme (sieht man mal von den Problemen ab, die ich durch fehlerhafte Programmierung selbst hervorgerufen habe).

Geändert von Perlsau ( 6. Nov 2012 um 01:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

AW: Paradox-Datenbank-Probleme

  Alt 6. Nov 2012, 01:42
Falls du wirklich wechseln solltest und somit ein Umbau deiner Anwendung ansteht, dann solltest du dir einen Gefallen tun und die Anwendung so aufstellen, dass es egal wird, welche Zugriffskomponente da herumwerkelt.

Statt also auf einer Form eine TQuery oder TTable Komponente zu klatschen, kann man
  • sich einen gekapselten Zugriff auf die Datenkomponente schreiben
    Delphi-Quellcode:
    Images_DataSource.DataSet := MyDB.GetQuery( 'SELECT * FROM MyTable' );
    Images_DataSource.DataSet := MyDB.GetTable( 'MyTable' );
  • ein TClientDataSet/DataSetProvider verwenden
Der Umstieg wird auch wesentlicher leichter fallen, wenn zunächst die Trennung mit dem bisherigen Zugriffsweg erfolgt und dann der Wechsel des Zugriffswegs.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: Paradox-Datenbank-Probleme

  Alt 7. Nov 2012, 20:56
Hallo,

Ich habe auch schon ein Programm zum Port Pdx->Firebird geschrieben.
Das war nat. Genau an die Datenstrukturen des Pdx-Programms angepasst.


Heko
Heiko
  Mit Zitat antworten Zitat
Megamuckel

Registriert seit: 28. Nov 2012
Ort: Menden / Sauerland
3 Beiträge
 
Delphi 2006 Professional
 
#14

AW: Paradox-Datenbank-Probleme

  Alt 28. Nov 2012, 18:05
Hallo !!

Tja, die gute alte BDE, wie ich sie liebe....
Trägt sie doch bereits seit knapp 20 Jahren die Verantwortung dafür, das meine Branchenlösung mehr oder weniger zuverlässig funktioniert.
Sie hat sich die Rente sicher verdient.
Genau dahin schicke ich sie nämlich jetzt.
Meine Hauptaufgabe in den nächsten Wochen/Monate wird es sein, Paradoxtabelle für Paradoxtabelle in eine neue Datenbank zu überführen.
Damit ich das portieren auch irgendwann beherrsche stehen mir ca. 150 Paradoxtabellen als Ausgangsmaterial zur Verfügung.
Blauäugig und naiv wie ich nunmal bin, hoffe ich, diesen Austausch so hinzubekommen, das die Nutzer meiner Applikation, also meine Kunden, den Ausstausch nicht bemerken werden.
Also werde ich, sobald ich die nötigen Entscheidungen in Bezug auf Datenbank/DB-Komponenten getroffen habe, die knapp 30MB Quellcode durchforsten und Paradoxtabelle für Paradoxtabelle durch neue Datenbanktabellen ersetzen.
Ich werd also gewissermassen eine Zeit lang zweigleisig fahren, eine Applikation mit zwei Datenbanken.
Um den administativen Aufwand möglichst gering zu halten, wird sicher eine embedded-DB zum Einsatz kommen.
Die nötigen Konvertierungen der Kundendaten werden hoffentlich auch fehlerfrei durchlaufen.

Ich hoffe, keiner meiner Kunden bekommt was davon mit......

Aber nötig ist der BDE-Ersatz schon....
Kai
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Paradox-Datenbank-Probleme

  Alt 28. Nov 2012, 18:59
Ich würde die Umstellung auf eine modernes DBMS auch dazu nutzen, die Datenbank "aufzuräumen". Eine 1:1 Übernahme ist imho nicht sinnvoll
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.476 Beiträge
 
Delphi 12 Athens
 
#16

AW: Paradox-Datenbank-Probleme

  Alt 28. Nov 2012, 23:10
Robert Love hat mal eine Präsentation über die Migration von BDE nach DBX gemacht - das kann man noch unter robstechcorner.googlecode.com finden.

Bei AnyDAC gibt es auch was zu dem Thema: siehe AnyDAC Doku unter Migrating BDE applications
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Megamuckel

Registriert seit: 28. Nov 2012
Ort: Menden / Sauerland
3 Beiträge
 
Delphi 2006 Professional
 
#17

AW: Paradox-Datenbank-Probleme

  Alt 29. Nov 2012, 16:52
Danke für die Tips,
wie gesagt, meine Software ist ca.20 Jahre alt und hat daher auch alte Strukturen.
Manche Programmteile stammen noch aus der Zeit als die Verbreitung von Windows noch hinter der von MS-DOS hinterherhinkte.
Klar, so ein Schnitt wie ich ihn plane, ist eine Gelegenheit, um die Programmteile für die nächsten 20 Jahre fit zu machen.
Auch Uwe's Hinweis auf AnyDAC<->BDE kommt mir sehr gelegen.

Stellt sich mir jetzt nur die Frage "AnyDAC" oder "UNIDAC".....
Aber das ist ja bereits in anderen Threads besprochen worden, wenn auch nicht zufriedenstellend beantwortet.
Ich muss wohl noch etwas recherchieren.... ist ja schliesslich eine Verbindung für ne halbe Ewigkeit.

Danke nochmals
LG
Kai
Kai
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#18

AW: Paradox-Datenbank-Probleme

  Alt 29. Nov 2012, 16:59
Ich werd also gewissermassen eine Zeit lang zweigleisig fahren, eine Applikation mit zwei Datenbanken.
Um den administativen Aufwand möglichst gering zu halten, wird sicher eine embedded-DB zum Einsatz kommen.
Wenn die Anwendung noch länger gepflegt werden soll würde ich den DB-Zugriff in eine Unit/Klasse packen und dann dahinter entweder BDE oder Nicht-BDE fahren.
Das kannst du dann auch so aufbauen das du mehrer DBMS gleichzeitig unterstützt ohne zu viel mehraufwand/code zu haben.

Stichwort wäre hier das Bridge-Pattern mit dem man sowas realisieren kann.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.476 Beiträge
 
Delphi 12 Athens
 
#19

AW: Paradox-Datenbank-Probleme

  Alt 29. Nov 2012, 17:41
Auch Uwe's Hinweis auf AnyDAC<->BDE kommt mir sehr gelegen.

Stellt sich mir jetzt nur die Frage "AnyDAC" oder "UNIDAC".....
Nur als Hinweis: Bei AnyDAC gibt es bis zum 30.11. noch 25% CodeRage-Rabatt, bei UniDAC sind es 20%
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Megamuckel

Registriert seit: 28. Nov 2012
Ort: Menden / Sauerland
3 Beiträge
 
Delphi 2006 Professional
 
#20

AW: Paradox-Datenbank-Probleme

  Alt 29. Nov 2012, 18:13
@Bernhard,
einige Programmteile sind ja bereits mehrfach von mir überarbeitet worden.

In einem Datamodul(create) wird bei jedem Programmstart die Verzeichnisstruktur kontrolliert und in den BDE-Alias eingetragen.
Gleichzeitig werden die verschiedenen Session-Parameter gesetzt und letztendlich die Verbindung zur Datenbank hergestellt.
Hier, im Datamodul(create), würde ich zukünftig wohl auch die Verbindung zur neuen Datenbank herstellen.
Im Falle einer embedded-Datenbank würde ich den benötigten Pfad vielleicht in einer lokalen INI-Datei ablegen.

Ist die Verbindung erst mal hergestellt, gibt es (hoffentlich) nur eine Unit die mir ein TDataset zur Weiterverarbeitung liefert.
(Das ist ja auch nix neues, das wurd schon zu DOS-Zeiten so gemacht)

Neu ist aber die Vielfalt der möglichen Datenbanken und der DB-Komponenten....

@Uwe welchen Rabatt sollte ich in Anspruch nehmen ?
Tja, ich muss mir wohl die featurelist der Beiden heute/morgen mal genauer ansehen.
Dazu wäre es natürlich hilfreich, wenn ich wüßte welche DB für meine Zwecke wohl die Beste wäre...
Am liebsten wäre mir eine DB bei der ich nur den Pfad eintragen müsste.
Klar, zuverlässig sollte sie auch sein..und schnell..und es müsste einige Admin-Tools geben..und..und

Aber gut, 30.11. ... nur kein Stress
Kai
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:16 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