Laden...

Unabhängiges DB Setup erstellen

Erstellt von Curse4Life vor 13 Jahren Letzter Beitrag vor 13 Jahren 697 Views
C
Curse4Life Themenstarter:in
452 Beiträge seit 2005
vor 13 Jahren
Unabhängiges DB Setup erstellen

verwendetes Datenbanksystem: MS SQL 2008 & MySQL 5.5

Guten Morgen,

ich stehe mal wieder vor einem Problem.
Ich möchte gerne ein Websetup realisieren und dabei sollen Tabellen in einer DB angelegt werden. Nun möchte ich das Setup aber nicht nur z.B. auf MS SQL Server festlegen, sondern möchte auch anbieten das man eine MySQL DB angeben kann.
Nun ist ja LEIDER SQL nicht SQL, sprich MS verwendet eine andere Syntax als MySQL.

Jetzt würde ich ungerne für jeden DB Typ ein eigenes Create Table schreiben und das dann auch noch multipliziert mit der Anzahl der Tabellen die angelegt werden soll.

Gibt es da nicht eine andere Möglichkeit, vielleicht auch ein OpenSource Projekt das irgendwie ein SQL je nach DB Typ umformt.

Liebe Grüße

B
48 Beiträge seit 2010
vor 13 Jahren

In nHibernate sind die SQL-Dialekte für viele gängige Datenbanken wegabstrahiert und es ist in der Lage die Tabellen und Verknüpfungen automatisch zu erstellen.

Es ist ein Objekt-Relationaler-Mapper und weit mehr als das was Du eigentlich suchst. Aber da sowieso empfehlenswert, kannst Du ja mal einen Blick drauf werfen.

3.825 Beiträge seit 2006
vor 13 Jahren

Hallo Curse4Life,

wenn es nur um das Create der Tabellen geht ist das recht schnell erledigt :

if (dbprovider == DatenbankProvider.MySQL)
{
	sqlstr = sqlstr.Replace("[int] identity(1,1) NOT NULL,", "int auto_increment primary key NOT NULL,");
	sqlstr = sqlstr.Replace("\r\n) on [primary];", "\r\n) engine=InnoDB character set utf8;");
	sqlstr = sqlstr.Replace("[ntext]", "[text character set utf8]");
	sqlstr = sqlstr.Replace("[bit]", "[tinyint (1)]").Replace("[image]", "[blob]").Replace("[ntext]", "[text]");
	sqlstr = sqlstr.Replace("[float]", "[double]");
	...
}

Wenn Du Deine komplette Anwendung für mehrere Datenbanksysteme anpassen willst lohnt es sich einen O/R-Mapper anzuschauen. Das Entity Framework kennt auch viele SQL-Dialekte.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

M
334 Beiträge seit 2007
vor 13 Jahren

Wenn es nur um das Setup der Datenbank geht ist ein O/R-Mapper evtl. nicht das richtige Werkzeug, weil diese mehr auf Umwandeln von DB-Daten in ein Objektmodell ausgelegt sind. Schau dir mal den migrator.net (Google Code) an.