PDA

Vollständige Version anzeigen : Carstens ExportDatabase2SQL


Sascha Trowitzsch
14.05.2006, 10:42
<table width="95%" border="0" cellpadding="4" cellspacing="1" class="tabletext"> <tr> <td width="13%" valign=top class="tablehead2"> <p class="tabletext">Name des Produkts:</p></td> <td width="30%" valign=top class="tablehead3"> <p class="tabletext"><strong>ExportDatabase2SQL</strong></p></td> </tr> <tr> <td valign=top class="tabletext2">(Evtl. Kommerzielle) Beta-Version?</td> <td valign=top class="tabletext3">Nein</td> </tr> <tr> <td valign=top class="tabletext2">Art des Produkts:<br> (Anwendung, AddIn, Tool o.&auml;.)</td> <td valign=top class="tabletext3">Tool (Datenbanken Access)</td> </tr> <tr> <td valign=top class="tabletext2">Programmautor:</td> <td valign=top class="tabletext3">Carsten M. ( <a href="http://ms-office-forum.net/forum/member.php?u=41386">a0053</a> ) </td> </tr> <tr> <td valign=top class="tabletext2">Aktueller Versionsstand:</td> <td valign=top class="tabletext3">0.1</td> </tr> <tr> <td valign=top class="tabletext2">Downloadgr&ouml;&szlig;e:</td> <td valign=top class="tabletext3">92 KByte</td> </tr> <tr> <td valign=top class="tabletext2">Vorgesehen(e) Betriebssystem(e):</td> <td valign=top class="tabletext3">MS Windows ab 2000</td> </tr> <tr> <td valign=top class="tabletext2">Vorgesehene Office-Version(en):</td> <td valign=top class="tabletext3">OfficeXP (2002) und h&ouml;her</td> </tr> <tr> <td valign=top class="tabletext2">Andere Systemvoraussetzungen:</td> <td valign=top class="tabletext3"> MSAccess ab V. 2002; MS-SQL-Server oder alternativ MySQL-Server V. 4.x</td> </tr> <tr> <td valign=top class="tabletext2">Installationshinweise:<br> (Art des Setups etc.)</td> <td valign=top class="tabletext3">Kein Setup n&ouml;tig; einfach MDE-Datei mit Access &ouml;ffnen</td> </tr> <tr> <td valign=top class="tabletext2">Zielgruppe:</td> <td valign=top class="tabletext3">Access-/DB-Entwickler</td> </tr> <tr> <td valign=top class="tabletext2">Enth&auml;lt das Produkt den Quellcode?</td> <td valign=top class="tabletext3">Nein (MDE)</td> </tr> <tr> <td valign=top class="tabletext2">Mit welchem Entwicklungswerkzeug wurde es genau erstellt?<br> (Mit Versionsangabe)</td> <td valign=top class="tabletext3">MS Access XP (2002)</td> </tr> <tr> <td valign=top class="tabletext2">Webseite:</td> <td valign=top class="tabletext3">-</td> </tr> <tr> <td valign=top class="tabletext2">Download unter:</td> <td valign=top class="tabletext3"><a href="http://www.roemke-buecher.de/afpro/ExportDatabase2SQL.zip">http://www.roemke-buecher.de/afpro/ExportDatabase2SQL.zip</a></td> </tr> <tr> <td valign=top class="tabletext2">Bisher getestete Konfigurationen:</td> <td valign=top class="tabletext3">Win XP; MS-SQL-Server 7.0/2000; MySQL 4.0</td> </tr> <tr> <td valign=top class="tabletext2">Kurzbeschreibung:</td> <td valign=top class="tabletext3">Dieses Programm erzeugt aus einer beliebigen MS-Access-Datenbank SQL-Skripte, so dass Struktur und Daten in ein SQL-Server-Produkt eingespielt werden k&ouml;nnen.<br> Entstanden ist dieses Programm, weil der zu Access geh&ouml;rende Upsizing-Assistent zum einen bei mir bei einer komplexen Datenbank (ca. 100 Tabellen, die alle &uuml;ber Relationen mit referentieller Integrit&auml;t verbunden waren) streikte und zum anderen nur auf den MS SQL-Server beschr&auml;nkt ist.</td> </tr> <tr> <td valign=top class="tabletext2">Testziel: <br> In welcher Hinsicht und unter welchen Bedingungen soll das Produkt getestet werden?</td> <td valign=top class="tabletext3">Werden alle Strukturen und Daten zuverl&auml;ssig exportiert?</td> </tr></table>

Manuela Kulpa
18.05.2006, 10:55
Hi Carsten,

schade, bei mir funktioniert deine MDE leider nicht. Nach der Auswahl der Quell-Datenbank erscheint Fehler 3112: Datensätze können nicht gelesen werden. Keine Leseberechtigung auf 'MSysObjects' (obwohl die DB nicht abgesichert ist. Greifst du auf die MSysObjects zu? Btw. ich hab’s auch mit anderen DB's ausprobiert. Gleiche Ergebnis wie oben).

Nach Bestätigung der o.g. Fehlermeldung werde ich dann sang und klanglos in den nächsten Fehler geführt: Fehlermeldung 91: Objektvariable oder With-Blockvariable nicht festgelegt. Und hier beginnt dann „täglich grüßt das Murmeltier“ ;), sprich nur mit STRG+Pause kann ich die Fehlermeldung abschießen.

Gruß

Sascha Trowitzsch
18.05.2006, 17:25
Ist bei ebenso.

Lieber Carsten, ich möchte dich bitten, hier umgehend zu posten, auch, damit ich weiß welcher User sich hinter deinem Namen verbirgt. (Ist mir per Email bisher noch nicht mitgeteilt worden.)

Ich habe den Beitrag reingestellt, weil mir das Tool trotz dem Fehler eigentlich vielversprechend aussah. Wenn nun aber keine Reaktion erfolgt, dann muss ich den Thread wieder entfernen...

Ciao, Sascha

Arne Dieckmann
18.05.2006, 18:05
Carsten ist wohl unter Sonstiges - Datenbank in SQL-Server exportieren - Softwaretest zu finden.

PN habe ich noch nicht abgeschickt.

SWR
18.05.2006, 19:43
Sieht in der Tat ja vielversprechend aus. Den Einstiegsfehler übersprungen, tut's ja recht ordentlich (erster Eindruck, nachdem alles auf einem entfernten Server sauber beim DB-Hoster ankam).
Aber:
Wenn man im Konfigurationsdialog den Namen einer SQL-Server-DB angibt (also um in eine bestehende SQL-Server-DB zu exportieren), wird im SQL-Skript ("00create.sql") dennoch
DROP DATABASE [NameDerMDB]
CREATE DATABASE [NameDerMDB]
ausgeführt.
Das wird tödlich, wenn man im Server eine solche gleichnamige DB hat - gar keine unwahrscheinliche Begegnung so was; da braucht die zum Export ausgewählte Test-MDB zum Beispiel nur "Kunden.mdb" zu heißen - im SQL-Server wären dann meine 100000 Kunden in der Datenbank "Kunden" ein für alle mal flöten.
Klar, daß man das vor der Ausführung händisch ändert, aber dazu muß man das erstmal wissen.

Sascha Trowitzsch
18.05.2006, 20:27
OT: Thanx, Arne!

a0053
18.05.2006, 22:02
Hi Folks,

habe soeben eine gefixte Version des Tools hochgeladen :yelrotfl:

@Manuela: Ich habe auf MSysObjects zugegriffen um die vorhandenen Tabellen zu lesen. Ist jetzt auf die TableDefs-Auflistung umgestellt, was nur leider etwas langsamer ist. Nachfolgendes war dann wohl ein Folgefehler (mal sehen wie ich den abfangen kann).

@Sascha: Sorry, hab heute früh zuletzt den Thread angeschaut und war danach nicht mehr auf der Seite :o

@SWR: Datenbankname im Skript 00create.sql ist behoben.

Viele Grüße

SWR
18.05.2006, 23:22
Hallo Carsten,

Gut, "versehentliches" Löschen bei zufälliger Namensgleichheit von zu exportierender MDB und einer bereits existierenden anderen Server-DB ist jetzt ausgeschlossen.

Aber Achtung:
Wenn ich in der angegebenen Ziel-Server-DB schon (andere) Tabellen habe, sind die futsch, da sich das Tool darauf konzentriert, eine Server-DB exakt nach Vorbild der MDB anzulegen (DROP DATABASE erfolgt derzeit immer).

Also einen Schalter, ob DROP DATABASE oder nicht, fände ich insoweit doch relativ wichtig. Oder aber ganz klare Hinweise für den Anwender bei der Konfiguration, daß der folg. Vorgang eine existierende DB ( natürlich inkl. existierender Tabellen) weghaut

Will ja nicht kleinlich sein, aber wer derzeit meint, die Tabellen der MDB würden seiner Server-DB nur hinzugefügt werden, erlebt ja nach Ausführung sein dickes blaues Wunder, wenn er die sql-Dateien ggfls. vorher nicht manuell angepasst hat (steht zwar in der readme drin, aber den Umgang damit kennt man ja....)

Gruss
Stephan

a0053
19.05.2006, 00:10
Hallo Stephan,

eine DROP-DATABASE-Option habe ich eben noch eingebaut (und hochgeladen).

a0053
19.05.2006, 09:03
Hallo,

ich habe soeben eine aktualisierte Version meines Tools bereitgestellt die Skripte für einen weiteres SQL-Server-Produkt erstellen kann:
Neben dem bisherigen Servertyp MySQL (mit den Standard-MyISAM-Tabellen) können nun auch für MySQL mit InnoDB-Tabellen Skripte erstellt werden.

SWR
19.05.2006, 09:39
Hallo Carsten,

schnell wie der geölte Blitz! Prima, Danke.
So, wie ich das jetzt sehe, kann da nichts mehr "schiefgehen".

Das Tool ist ein sehr wertvoller Helfer, wenn es um das schnelle und vor allem unkomplizierte Upsizing in Richtung nicht lokaler Server geht - da spielt Access von Haus aus ja nicht mit.
Also: soweit prima und gut zu gebrauchen!

Jetzt steht "nur" noch der neue 2005er an :mrcool:

Ach ja, was ICH gern hätte - aber das wäre ja nun zu viel des Guten ;) -
wäre noch so was wie CREATE TABLE [Benutzername].[Tabelle1].
Wenn der angegebene Benutzer nämlich zufällig ein SysAdmin ist, hab' ich da immer den dbo drin, den ich aber manchmal gar nicht gebrauchen kann. Aber das ist ein Spezialfall, der wohl nur bei mir vorkommt . . . .
Mach' ich dann manuell bei Bedarf . . .
Gruß
Stephan

a0053
19.05.2006, 10:43
@Stephan:
Welchen Benutzernamen hättest Du denn gerne vor dem Tabellennamen? Den selben, der auch fürs Server-Login gilt, oder einen anderen?
Und, den Benutzernamen nur bei CREATE|ALTER TABLE-Statements oder überall (d.h. auch bei den INSERT-Statements für die Daten)?

SWR
19.05.2006, 17:35
Mensch Carsten, Du bist ja das totale Ass! Du brauchst Dir wegen mir einzelnem Hansel jetzt aber echt nicht soviel Mühe zu machen.
Aber wenn Du schon danach fragst :)
CREATE TABLE [User].[Tab]
ALTER TABLE [User].[Tab]
INSERT INTO [User].[Tab]
wobei [User] derjenige wäre, den ich in der Konfiguration auch eintrage.

Wie gesagt, ist aber wirklich nicht nötig, da nur ein ganz persönlicher Spezialfall.
Und nicht zu unterschätzen: das würde wahrscheinlich neue Probleme aufwerfen, wenn die DB im MS-SQL-Server erst angelegt würde, der Benutzer aber dort dann noch nicht vorhanden ist, er also auch erst noch eingebaut werden müßte. Oder die DB ist zwar vorhanden, aber [User] nicht, die DB ist vorhanden und [User] ist schon dbo (dann kann er nicht mehr angelegt werden) usw. usw.

Wäre also zu überlegen, ob Du da nicht zu viel "Unruhe" in dem Tool schaffen würdest, weil zu viel geprüft werden muß.

Bitte wegen mir die Änderungen jetzt nicht unbedingt machen, evtl. führt das nur zu Problemen bei den anderen und es soll ja kein Tool nur für mich werden.

Aber auf jeden Fall herzlichen Dank für Deine Arbeit!

Gruß
Stephan

SWR
19.05.2006, 19:09
Noch eine Anregung:

Option Timestamp, mit oder ohne.

Gruss
Stephan

a0053
19.05.2006, 20:31
@Stephan: Ich werde den User mal einbauen und dabei den Login-User (aus 2.) nehmen. Damit existiert der User schon mal sicher (sonst läuft der Batch ja auch nicht). Ein passende, defaultmäßig aber ausgeschaltete Option wirds dazu ferner geben.
Was stellst Du Dir unter einer timestamp-Option genau vor?

SWR
19.05.2006, 20:42
Hallo Carsten,

ob ein neues Feld vom Typ "Timestamp" hinzugefügt werden soll.

Im CREATE TABLE Block dann z. B.:
[TS] [Timestamp] NOT NULL (oder NULL, weiß nicht wie das ist, weil man ja nichts einfügt)

Gruß
Stephan

P.S.: Bin heute Nacht nicht mehr online, wohl erst Montag wieder, die Frau kommt nämlich heute Abend aus'm Urlaub zurück :grins:

SWR
19.05.2006, 20:53
Ich noch mal:
habe da mal spaßeshalber erste Experimente mit dem 2005er gemacht.
Komme da nur bis CREATE TABLE. Bei INSERT INTO ist Feierabend ( [Tabellen]-Objekt existiert nicht oder Sie haben keine Rechte . . . ).

Da steige ich noch nicht durch das neue Konzept von 2005 durch, denn meiner Meinung nach hätte ich alle Rechte gehabt. Aber da verfolge ich wohl noch zu sehr die Logik vom 2000er in diesen Dingen. Da heißt es erst mal, vertrauter zu werden mit dem Burschen.

Aber das Tool für den 2005er wäre auch eine feine Sache.

So, jetzt tschüss erst mal . . .

Gruß
Stephan

a0053
20.05.2006, 23:55
Hallo liebe Tester,

die diversen Anregungen - v.a. von Stephan - habe ich noch einbauen können und soeben eine aktuelle Version meines Tools zum Download bereit gestellt. :mrcool:

Im Moment habe ich keinen SQL-Server 2005 installiert (und werde das in der nächsten Zeit wohl auch nicht haben).
Gerne will ich versuchen, für den 2005er evtl. nötige Änderungen noch in das Tool aufzunehmen, nur selber testen kann ichs derzeit halt nicht - da bräuchte ich Euch. :wisper:


Viele Grüße
Carsten

Sascha Trowitzsch
21.05.2006, 12:06
Aber du weißt, dass es den 2005er umsonst gibt?
(http://msdn.microsoft.com/sql/express/)

Ciao, Sascha

SWR
21.05.2006, 13:06
... und entgegen den Angaben zu den Mindestanforderungen an die Hardware läuft die kostenlose Express-Version bei mir mit erstaunlicher Performance auf einem eigens zu Testzwecken aus dem Keller rausgekramten und hier ins lokale Netz eingebundenen, 8 Jahre alten Pentium 366 Mhz, mit 4 GB Platte und satten 96 MB RAM (diese Kraftpakete gibt's bei Ebay für 20,- Euro). So kann die neue Server-Version in aller Ruhe und vor allem erstmal isoliert vom restlichen Equipment sein erstes Experimentierdasein erleben.

a0053
22.05.2006, 15:15
Die Express-Edtion kenne ich wohl, nur krankts an der vorhandenen Hardware (da ich schon 7.0 und 2000 vorhalten muss; klar hab ich noch irgendwo ein älteres Schätzchen im Keller - es fehlt nur der Stellplatz dafür).
Kennt Ihr einen einfachen Trick mehrere SQL-Server-Versionen auf demselben Rechner paralell zu installieren, idealerweise ohne eine virtuelle Maschine aufsetzen zu müssen?