Probleme beim Umzug von Access nach SQL

11/04/2011 - 14:47 von Stefan Koschke | Report spam
Hallo zusammen,

endlich habe es die Anwender eingesehen, ich darf mein Programm von
Access-Datenbanken nach SQL-Server umstellen.
Dafür habe ich mir ein Importtool geschaffen, welches per
INSERT INTO ... SELECT * FROM ... OPENROWSET(BULK...)... (
FORMATFILE=) as Importdata
die Access-Daten umschaufelt.
Hierfür wird jeweils eine Textdatei mit den Daten und eine Formatdatei
übergeben.

Hier ein Beispiel Text:
8 Rödenthal Daniel Hatzel .
9 Rödenthal Schule Rödental Mitte

und die xml-Formatdatei
<BCPFORMAT
xmlns="http://schemas.microsoft.com/sqlser...rmat"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-in...">
<RECORD>
<FIELD ID="1" xsi:type="CharTerm" TERMINATOR="\t"/>
<FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\t"/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\t"/>
<FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\t"/>
<FIELD ID="5" xsi:type="CharTerm" TERMINATOR="\t"/>
<FIELD ID="6" xsi:type="CharTerm" TERMINATOR="\t"/>
<FIELD ID="7" xsi:type="CharTerm" TERMINATOR="\t"/>
<FIELD ID="8" xsi:type="CharTerm" TERMINATOR=""/>
</RECORD>
<ROW>
<COLUMN SOURCE="2" NAME="Kundennummer" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="3" NAME="Name" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="4" NAME="Adresse" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="5" NAME="PLZ" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="6" NAME="Ort" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="7" NAME="Zusatz" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="8" NAME="geloescht" xsi:type="SQLBIT"/>
</ROW>
</BCPFORMAT>

Kundennummer und name sind in der felddefinition gleich, auch in der
zugehörigen SQL-Tabelle.
Aber "Rödental" in der ersten Textspalte erscheint in beiden Datensàtzen
korrekt, "Schule Rödental Mitte" in der zweiten Spalte hat einen
falschen Umlaut ö in der Datenbank!

Ich habe keine Ahnung, wo ich ansetzen könnte, hat jemand bitte eine Idee?

Ciao
Stefan
 

Lesen sie die antworten

#1 Michael Broede
11/04/2011 - 17:16 | Warnen spam
Hi,

Am 11.04.2011 14:47, schrieb Stefan Koschke:
Hallo zusammen,

endlich habe es die Anwender eingesehen, ich darf mein Programm von
Access-Datenbanken nach SQL-Server umstellen.
Dafür habe ich mir ein Importtool geschaffen, welches per
INSERT INTO ... SELECT * FROM ... OPENROWSET(BULK...)... (
FORMATFILE=) as Importdata
die Access-Daten umschaufelt.
Hierfür wird jeweils eine Textdatei mit den Daten und eine Formatdatei
übergeben.

...




leider habe ich keine konkrete Antwort auf Deine Frage. Nach meinen
Erfahrungen kommen bei der Übernahme von Daten in den SQL-Server solche
Fehler eben vor. Gerade wenn Du mit Textdateien oder so hantierst. Da
wird gern auch mal ein Datum wie der 01.12. zum zwölften Januar. Ich
rate von so einem Importverfahren via Dateihandling ab.
Wenn Du die Möglichkeit hast, verwende den Import-Assistenten des
SQL-Servers [1]. Der funktioniert zwar auch nur etwas holprig, aber
zumindest kann man was konfigurieren. Und Du vergibst nicht den einen
Vorteil, den Dir Access schon bietet: eingebaute feste Datentypen.
Alternativ kannst Du auch anders herum aus Access heraus die Tabellen
mittels ODBC an den SQL-Server übertragen. Unter Access 2010 gibts sogar
einen Upsizing-Assistenten.

Bye

Michael


[1] In der MS-SQL-Management-Konsole rechte Maustaste auf der Datenbank,
Menüpunkt "Tasks / Daten importieren" auswàhlen, Datenquelle "Microsoft
Access" auswàhlen, Datenbankdatei auswàhlen usw., am Ende die zu
importierenden Tabellen ankreuzen, Import starten und fertig.

Ähnliche fragen