Entwickler-Ecke

Datenbanken - TXT datei lässt sich in ms sql datenbank nicht einfügen


moori64 - Do 15.12.11 01:13
Titel: TXT datei lässt sich in ms sql datenbank nicht einfügen
hallo,

ich möchte ein txt datei in ein Datenbanktabelle einfügen, leider funktioniert das nicht.
die Datenbanktabelle hat ein id feld und obwohl ich insert identity aktiviert habe möchte er das id feld immer füllen
wie kann ich das umgehen ?

Gruß UWE


bummi - Do 15.12.11 01:27


Delphi-Quelltext
1:
Feld.Required := false;                    


wenn du das meinen solltest, schwer zu erraten ...


moori64 - Do 15.12.11 09:08

Hallo Thomas ,
ich benutzte das ms sql server managment studio und dort habe ich eine datenbank angelegt und diese will ich von außen
mit einer txt datei füllen. da ich nicht weiß wie das mit quellcode passiert muss ich mit den assitenten arbeiten und wähle dort Flatfile aus und dort ist der Punkt identity insert.

Ich muss ja dort auch die Felder neu Typesieren und da stehen mir auch nicht alle möglichkeiten zur verfügung



Viele Grüße

Uwe


bummi - Do 15.12.11 13:02

Ok und wo genau liegt das Problem, ich habe mal ein paar Screenshots angehängt


moori64 - Do 15.12.11 16:20

Hallo Thomas ,

genau das benutzte ich, wenn ich eine Datei einlese die Kein Feld ID hat und ich bei der Zuweisung ignoriern einstelle dann wird beim einfügen der Tabelle versucht dort ein 0 reinzuschreiben.
Das ist dies im Bild 2-

Und im Bild eins wird mir ja mitgeteilt das die Felder in der Txt datei untypesiert sind und wenn ich vorher ein Feld Double hatte und nun das in Float reinschieben will dann geht das nicht mehr
da ich im Assitenten nicht die Möglichkeit habe so ein Typesierung durchzuführen.


Gruß uwe


bummi - Do 15.12.11 16:36

Wenn Du <ignorieren> einstellst darfst Du IDENTITY_INSERT nicht aktivieren, die ID wird dann automatisch vergeben.
Den Typ kannst wie in Bild 1 unter "Erweitert" einstellen.


moori64 - Do 15.12.11 19:27

das habe ich jetzt gemacht , das problem ist aber das er mir meine spalte id garnicht anzeigt obwohl die in der datenbank vorhanden ist.
nun habe ich noch ein spalte null bei den punkt erweitert eingestellt und dann bin ich auf weiter gegangen und dort hat er mir mein feld id im dropdown feld angeboten.
da bin ich dann auf ignorieren gegangen. er meldet mir aber fehler die ich nicht bekomme wenn ich den assistenten die tabelle erstellen lasse-
lasse ich die tabelle selbst erstellen funktioniert es aber eben ohne id.
brauche ich die denn unbedingt ?

gruß

uwe


bummi - Do 15.12.11 19:55

Es fällt mir schwer Dir zu folgen...
Wenn die Tabelle bereits vorhanden ist und ein ID-Feld mit Identity hat kannst Du alles über das Mapping regeln.
Wenn Du keine Tabelle vorher haben willst kann er Dir nur erstellen was er bekommt, Du kannst im nachhinein eine ID-Spalte im Management Studio einziehen wenn Du sie benötigst (üblicherweise hat man sowas).


moori64 - Do 15.12.11 20:17

Hallo Thomas,

ich bekomme ein Txt datei , dort sind die Felder bereits Typesiert und dort ist kein ID feld , nun habe ich eine Datenbanktabelle erstellt.
Typesiert sind die Felder mit char und float und dort ist dann auch ein id feld eingetragen. nun führe ich den assistenten aus und bekomme es einfach
nicht hin die txt datei im meine datentabelle zu schieben. wenn ich vom system eine tabelle erstellen lasse klappt es. die felder die bei mir in der datenbanktabelle als float
typesiert sind , typesiere ich als gleitkomma mit doppelter genauigkeit.


viele grüße

uwe


bummi - Do 15.12.11 20:26

häng doch mal ein 5 zeilige Textdatei an und einen Script wie die Zieltabelle auszusehen hat ...


moori64 - Do 15.12.11 21:02

so ich habe dir ein pn geschickt.


bummi - Do 15.12.11 22:32

Also läuft bei mir rein wie Butter, Zuhause habe ich nur Express und konnte es nicht speichern.
Das Mapping lief bis auf wenige Ausnahmen (z.B. LP+ fehlte) automatisch.
Identity_Insert nicht anhaken, da wir ja keine Identityspalte füllen wollen sondern der Server selbst eine Nummer vergeben soll.
Ich schicke Dir noch eine Mail wie ich mir das mit dem Tabellenformat gedacht hatte.


moori64 - Do 15.12.11 23:07

Hallo Thomas,

wie hast du den Txt datei typesiert oder einfach so gelassen ?


Viele Grüße

UWe


bummi - Fr 16.12.11 00:04

Die Tabelle war ja da, die Mappings passen, man muss eigentlich an der Stelle gar nichts mehr anfassen ....


moori64 - Fr 16.12.11 00:57

Hallo thomas ,

wenn ich das so lasse habe ich aber teilweise keine werte in der tabelle hast du das auch gesehen ?


viele grüße uwe


bummi - Fr 16.12.11 01:17

bei mir war alles da, Du hast eine PN mit einem Accessexport