AGB  ·  Datenschutz  ·  Impressum  







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

Datenbank-Wrapper?

Ein Thema von SubWorx · begonnen am 23. Jan 2006 · letzter Beitrag vom 7. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
SubWorx

Registriert seit: 12. Dez 2005
Ort: Mannheim
16 Beiträge
 
Delphi 2006 Architect
 
#1

Datenbank-Wrapper?

  Alt 23. Jan 2006, 08:57
Datenbank: MySQL/MSSQL/FireBird • Zugriff über: ???
Hallo erstmal,

meine Frage bezieht sich auf Datenbank-Zugriff zu verschiedenen Datenbanken über einen Wrapper.

Ich kenne z.b. Zeos, mit dem ich auf mehrere DBMS zugreifen kann.
Allerdings habe ich folgendes "Problem":

Die Einzelplatzversion unserer Software soll ein embedded DBMS benutzen, zuerst dachten wir an Paradox, aber nach Stöbern im Forum bin ich auf Firebird Embedded gekommen.
Die Mehrplatzversion soll hingegen auf einen SQL Server (MSSQL, MySQL, PQSQL, ...?) im Netzwerk zugreifen.

Bei der Installation wird anhand der Seriennummer o.ä. ermittelt, was für eine Version vorliegt, und der entsprechende Code benutzt.

Paradox und DBMS "gleichzeitig" zu betreiben erscheint mir jedoch relativ unmöglich, da ich komplett andere Komponenten etc benötige, oder liege ich da falsch?

Der Grund ist, dass wir nicht 2 verschiedene Programmversionen (Filedatenbank (Firebird?) / DBMS) erstellen und vor allem pflegen wollen.

Vielen Dank schon mal für Eure antworten

gruß
Sub
Matthias
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Datenbank-Wrapper?

  Alt 23. Jan 2006, 09:14
Ein Beispiel für einen Wrapper der geeignet wäre sind die Zeos-Komponenten.
Es werden hier verschiedene DBMS unterstützt (Interbase/Firebird, DB2, Oracle. Postgres, Mysql, mssql).
Am einfachsten wäre es auf beiden Seiten die selbe DB zu verwenden ( FFBembedded -> FB/mysql-embedded->Mysql, MSSql express bzw. MSDE -> MSSQl).
Auch ODBC, ADO bieten DB-Abstraktion.
Markus Kinzler
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Datenbank-Wrapper?

  Alt 23. Jan 2006, 09:21
Zitat von mkinzler:
Ein Beispiel für einen Wrapper der geeignet wäre sind die Zeos-Komponenten.
Es werden hier verschiedene DBMS unterstützt (Interbase/Firebird, DB2, Oracle. Postgres, Mysql, mssql).
Die geben dir nur die Möglichkeit mehrere DBs über die gleichen Klassen anzusprechen.
Du musst damit trotzdem die einzelnen Dialekte getrennt behandlen...

Ein Lösung wäre DataAbstract, eine andere vllt InstantObjects...
Robert Giesecke
  Mit Zitat antworten Zitat
SubWorx

Registriert seit: 12. Dez 2005
Ort: Mannheim
16 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Datenbank-Wrapper?

  Alt 23. Jan 2006, 11:18
Heisst das, dass ich mit DataAbstract oder InstantObjects (blicke da noch nicht wirklich, was letzteres eigentlich genau macht) auf verschiedene DBMS (also ende ich bei FBembed lokal, FB/MySQL/MSSQL/PQSQL im netz) zugreifen kann, ohne mich gross um syntax-differenzen zu kümmern?

da die Anwendung zu 99% auf sql basiert, wäre es natürlich angenehm, wenn ich mich um diesen teil so wenig wie möglich kümmern müsste

Danke nochmal
Sub
Matthias
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Datenbank-Wrapper?

  Alt 23. Jan 2006, 11:27
InstantObjects nimmt dir auch noch den SQL Teil (sowie einen Teil der Klassenmodelierung) ab.
DataAbstract gibt dir einen Middle Tier server, der einen Makro SQL Dialekt besitzt, welcher von DB-spezifischen DA Treiber zu DB-spezifischem SQL übersetzt werden.

Habe IO gerade mal angeschaut, sieht ganz nett aus. Vor allem da man damit eklige DataSets gegen richtige Klassen tauschen und trotzdem das ganze an DB Aware Controls binden kann.
Hätte ich früher kennen sollen....
Robert Giesecke
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Datenbank-Wrapper?

  Alt 23. Jan 2006, 11:40
DataAbstract und InstantObjects sind ORM's( Object/Relational Mapper).D.H sie bilden ein Objektmodell auf eine relationale Datenbankstruktur ab.
Im ORM sind verschiede Datenbankabstraktionen für verschiedene DBMS implementiert. Dafür muß aber dein Programm an das ORM angepasst werden.
Zitat:
Die geben dir nur die Möglichkeit mehrere DBs über die gleichen Klassen anzusprechen.
Du musst damit trotzdem die einzelnen Dialekte getrennt behandlen...
Deshalb habe ich vorgeschlagen auf beiden Seiten die selbe DB zu nehmen. Die SQL-Dialekte der verschiedenen DBMS unterscheisen sich z.T. erheblich. So das eine SQL-Anweisung, welche auf mehreren Datenbanken funktioniert sehr schwer zu realisieren ist.
Markus Kinzler
  Mit Zitat antworten Zitat
SubWorx

Registriert seit: 12. Dez 2005
Ort: Mannheim
16 Beiträge
 
Delphi 2006 Architect
 
#7

Re: Datenbank-Wrapper?

  Alt 23. Jan 2006, 11:53
ok jetzt habe ichs verstanden, danke

dann müssen mein kollege und ich uns doch wohl dransetzen und die ultimative wrapper klasse schreiben, da einige unserer kunden mssql installiert haben, einige evtl zu mysql greifen werden, und der rest firebird aufgedrückt kriegt

die klasse wird dann wohl so aussehen, dass eine variable sagt welcher dialekt benutzt wird, und im programm selbst nur benutzt wird z.b.

insert('sql befehl'), select('sql befehl') und der wrapper bastelt das entsprechend hin


darf ja auch nicht alles mitliefern, da wir eine kommerzielle anwendung schreiben
da fällt mysql (+embedded) schonmal raus, es sei denn wir bieten den kunden an, dass wir mysql als eine möglichkeit von mehreren unterstützen und die sich das selber runterladen sollen

schauen wir mal, was da rauskommt

danke nochmal
gruß
Sub
Matthias
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Datenbank-Wrapper?

  Alt 23. Jan 2006, 12:56
Zitat von mkinzler:
DataAbstract und InstantObjects sind ORM's( Object/Relational Mapper).D.H sie bilden ein Objektmodell auf eine relationale Datenbankstruktur ab.
Nope, DA's Vorteil ist, das es kein ORPF ist. IO's Vorteil ist das es ein ORPF ist...
Beide Lösungen haben ihre Vorteile und beide machen dich unabhängig vom SQL Dialekt (Solange ein Broker/Treiber vorhanden ist).
Robert Giesecke
  Mit Zitat antworten Zitat
SubWorx

Registriert seit: 12. Dez 2005
Ort: Mannheim
16 Beiträge
 
Delphi 2006 Architect
 
#9

Re: Datenbank-Wrapper?

  Alt 23. Jan 2006, 15:58
hmm ... also irgendwie komm ich weder mit DataAbstract noch mit Instant Objects wirklich klar

die online hilfe bringt mir nicht wirklich was, weil ich noch nicht mal verstehe, warum ich das zeug überhaupt brauche

kann mir wer aus der misere helfen mit guten tutorials über die ganzen DB systeme?
blicke da vor dbexpress, ado, bde, ..... nicht wirklich durch

bislang hab ich da nix wirklich brauchbares finden können, dsdt, dp, delphi-forum, delphi-library und delphi.about.com konnten mir nicht wirklich helfen


danke euch nochmal

Sub
Matthias
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Datenbank-Wrapper?

  Alt 23. Jan 2006, 16:07
Viellecht reicht es ja aus verschiedene Datenmodule für die verschiedenen DBMS zu verwenden oder nur verschiedene "Init"-Methoden eines DatenModuls der Form InitFB, InMSSql, welche für die Zugriffskomponeten (TZQuery) die Sql-Statements for die entsprecheden DB-Dialekte setzt. Eine Realisierung in SP wäre u.U auch sinnvoll ( Problem: z.T. nicht unterstützt; MySQL).
Zitat:
hmm ... also irgendwie komm ich weder mit DataAbstract noch mit Instant Objects wirklich klar
Ich kenne DataAbstract nicht aber mei IO muß das Programm umgekrempelt werden.
Eine weiter ORM-Variante wäre ObiWan von Jedi.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:23 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