Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbanksystem wechseln (https://www.delphipraxis.net/101182-datenbanksystem-wechseln.html)

Die Muhkuh 9. Okt 2007 15:41

Datenbank: BDE, Paradox • Version: 5.xx? • Zugriff über: TTable, TQuery, TDBScroll

Datenbanksystem wechseln
 
Hi,

ich hab hier eine Software liegen, die mittlerweile gut 6-8 Jahre auf dem Buckel hat. Anfangs wurde die mit der BDE und Paradox-Datenbanken programmiert.

Angesichts der Tatsache, dass die BDE ja mehr als outdated ist, muss was neues her.

Ausgangssituation
ca. 75 Paradox-Datenbanken (= Dateien), mit teils 2500 Datensätzen. Teils schlecht strukturiert (schon von anfang an und wurde nicht mehr geändert, aber das ist ja erstmal "wurscht") und dadurch "schlechte" SQL-Abfragen.

Wie dem auch sei, es muss was neues her. Die Software wird auf hunderten von Kundenrechnern installiert, das heißt, dass eine embedded (schreibt man das so?^^) Lösung angebracht wäre.

Das Datenbanksystem sollte auch die nächsten paar Jahre laufen und es sollte auch eine Art Datenbankoberfläche gegeben sein (wobei es hier ja, denk ich mal, Programme dafür gibt).

Was könntet ihr mir vorschlagen?

BeBored 9. Okt 2007 15:45

Re: Datenbanksystem wechseln
 
Ich habe mit der NexusDB nur gute Erfahrungen gemacht. Die Embedded Version ist kostenlos.
www.Nexusdb.com

DeddyH 9. Okt 2007 15:47

Re: Datenbanksystem wechseln
 
Bevor es jemand anderes sagt: Firebird.

Überlegenswert wären evtl. auch noch die Expressversionen von MS-SQL oder Oracle.

RavenIV 9. Okt 2007 15:55

Re: Datenbanksystem wechseln
 
Zitat:

Zitat von DeddyH
Bevor es jemand anderes sagt: Firebird.

Sonst hätte ich es jetzt gesagt.

Und als Zugriffskomponenten die ZEOS.
Die TIB-Komponenten (IB-Objects) würde ich persönlich nicht nehmen, weil die viel zu kompliziert sind.
Ausserdem sind die die so geschrieben, dass man dann auch TIB_Edit, TIB_Grid, usw. verwenden muss, weil die nicht zur Standard-Datasource kompatibel sind.
Ich muss die TIB leider verwenden, weil mein Vorgänger das Programm voll darauf abgestimmt hat. Nach und Nach will ich diese Komponenten aber eliminieren.

Die Muhkuh 9. Okt 2007 16:08

Re: Datenbanksystem wechseln
 
Wie sieht es bei Firebird z.B. mit den Änderungen von Querys der mit den TTable, TQuery-Komponenten aus?

RavenIV 9. Okt 2007 16:10

Re: Datenbanksystem wechseln
 
Zitat:

Zitat von Die Muhkuh
Wie sieht es bei Firebird z.B. mit den Änderungen von Querys der mit den TTable, TQuery-Komponenten aus?

TTable ist eh nicht zu empfehlen, weil zu un-performancehaft.
TQuery wirst Du wohl nicht direkt benutzen können.

Nuclear-Ping 9. Okt 2007 16:18

Re: Datenbanksystem wechseln
 
Aus eigener Erfahrung: Advantage Local Server. Link - Unten bei "Download Advantage Clients", da ist auch der kostenlose Local Server drin.

- Braucht keine installierte DB-Engine, sondern nur ein paar .dll und .cfg-Dateien im Verzeichnis der eigenen .exe
- Wird über TDataSet-Nachfahren angesprochen (also TAdsQuery, TAdsTable, ...)
- Kostenlos als Desktopdatenbank ("Local Server")
- Datenbankoberfläche (Data Architect)
- SQL92
- ... etc. etc. etc.

Die Muhkuh 9. Okt 2007 16:20

Re: Datenbanksystem wechseln
 
Hi,

das ist schlecht, sehr schlecht, zumindest noch...

Das Programm benutzt eine Komponente namens DBScroll, bei google findet man genau 1 Ergebnis damit und das ist diese nicht. Die Komponente ist über 6 Jahre alt und braucht ein TDataSource als Source. Dummerweise ist diese Komponente die wichtigste, da sie die Ergebnisse von einem TQuery anzeigt.

Als das Programm angefangen wurde, lief die Verarbeitung quasi so und ist seit dem auch nicht mehr anders:

Daten von Paradox-DB über TQuery auslesen. Diverse Berechnungen der Daten anstellen und in eine Ergebnisdatenbank schreiben. Ein weiteres TQuery ist mit dieser Datenbank verknüpft und lies die Ergebnisse direkt aus der Ergebnisdatenbank aus, also ist es momentan nicht möglich, vor dem Auslesen der Ergebnisse diese zu manipulieren (ok, es geht, aber mehr schlecht als recht...).

Hab eben nochmal schnell durchgeguckt, es werden 2 TTables, 40 TQuerys sowie die entsprechende Anzahl an TDataSource.

Mir ist bewusst, dass die Umstellung nicht gerade klein ist und auch viel Zeit in Anspruch nimmt, deswegen möchte ich es auch von vorneherein "richtig" machen. "Richtig" in Anführungszeichen, da, beim richtigen Richtigmachen man das komplette Programm neu schreiben müsste, aber das wäre doch, mehr oder weniger, zuviel Aufwand.

Firebird werde ich mir mal ansehen. Mit den ZEOS kenne ich mich ein bisschen aus.

MfG

PS: Wie sieht es da mit kommerziellen Lizenzen (kenne mich mit Lizenzen nicht wirklich aus) aus?

mkinzler 9. Okt 2007 16:21

Re: Datenbanksystem wechseln
 
Zitat:

TQuery wirst Du wohl nicht direkt benutzen können.
Aber entsprechende Derivate

ConstantGardener 9. Okt 2007 18:35

Re: Datenbanksystem wechseln
 
Hallo Muhkuh,

ich kann mich BeBored nur anschließen. Die Migration von der BDE nach NEXUS ist recht einfach und die Engine (Embedded Sever) wird komplett in die EXE einkompiliert. Du brauchst keine DLL's mit zu installieren. Auch von der SQL Unterstützung und Performance ist Nexus meiner Meinung nach sehrt gut. Eine Datenbankoberfläche wird mitgeliefert.

Gruß

Constant Gardener

Progman 9. Okt 2007 18:50

Re: Datenbanksystem wechseln
 
ich würde Tiny-DB empfehlen, bin nämlich auch grad dabei, ältere Anwendungen zu "ent-BDE-en". Das geht damit recht einfach.

merlin17 9. Okt 2007 21:44

Re: Datenbanksystem wechseln
 
Man sollte auch die neue Datenbank BlackfishSQL.net einmal näher anschauen... Erfordert aber RAD 2007 und dbx4 ...
Die Performance ist ausgesprochen gut, die Stabilität war bei mir die letzten Monate in zwei Projekten auch top...
Selbst bei Daten über die 1 GB und 30 Benutzer (ja, BlackfishSQL geht auch mit mehr als 5/20 User/Connection)

Und CodeGear arbeitet auch an einer setorientierten Erweiterung von dbx4 für BlackfishSQL, damit kann man wie "früher" ala TTable etc. arbeiten (siehe BlogEintrag von MarcoCantu von der EKON11).


:-) thomas

mkinzler 9. Okt 2007 21:51

Re: Datenbanksystem wechseln
 
Zitat:

Und CodeGear arbeitet auch an einer setorientierten Erweiterung von dbx4 für BlackfishSQL, damit kann man wie "früher" ala TTable etc. arbeiten (siehe BlogEintrag von MarcoCantu von der EKON11).
Aber erst in einer der nächsten Delphiversionen

ConstantGardener 10. Okt 2007 06:25

Re: Datenbanksystem wechseln
 
Hallo Merlin,

ich dachte Blackfish SQL wäre nur was für Managed Code, sprich .NET ? :gruebel: Die Muhkuh portiert doch ein Win32 Programm ?

verwunderte Grüße....

ConstantGardener

mkinzler 10. Okt 2007 06:35

Re: Datenbanksystem wechseln
 
Der Datenbankserver läuft auf .Net aber per dbExpress kann man auch aus Win32 darauf zugreifen.

ConstantGardener 10. Okt 2007 07:01

Re: Datenbanksystem wechseln
 
@mkinzler : Danke, das ist gut zu wissen.

Gruß ConstantGardener

Jelly 10. Okt 2007 07:30

Re: Datenbanksystem wechseln
 
Eventuell erwähnenswert, in Bezug auf Firebird, aber auch auf MSSQL Express, sind die Zugriffskomponenten von Corelab. Das installiert einen Assitenten mit ins BDS mit dem leichte alle TQuery und TTable in die entsprechenden komponenten von Corelab umgewandelt werden können, unter Berücksichtigung aller definierten Ereignisse... Das erleichtert die Arbeit enorm.

merlin17 10. Okt 2007 08:02

Re: Datenbanksystem wechseln
 
wie mkinzler schon sagte, der server ist .net (oder im Framework .java der vollständigkeitshalber <g>) aber der Zugriff geht über
dbexpress (version dbx4!) von Win32 wie auch .net
hier noch einige Info's über BlackfishSQL.net
BlackfishSQL2, SteveShaughnessyBlackfishSQL

Ganz wichtig noch: SP und Trigger kann man in Delphi programmieren.... macht richtig spass (und wenn man Pascal und/oder PL/SQL kennt, so ist es die relativ
leicht mit dem Einstieg hier in BF!). In einem meiner nächsten Blogs werde ich auf die SP und Trigger-Programmierung von BF eingehen; ich bin auf jeden Fall begeistert davon :wink:

:-) thomas

Phoenix 10. Okt 2007 09:35

Re: Datenbanksystem wechseln
 
@Thomas: Bitte beachte auch parametrisierte Statements um SQL-Injection zu vermeiden. Wäre Dir sehr dankbar dafür ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:54 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