SQL - Frage

30/01/2009 - 19:44 von Wolfgang Mueller | Report spam
Hallo,
ich habe in einer MS-Access DB aus Versehen eine Spalte einer Tabelle als
TEXT anstatt als DOUBLE angelegt. Die DB wird per VB.NET /ADO.NET2.0 gefüllt.
In dem Feld befinden sich jetzt Zahlen in Textform, da das Feld ein Mussfeld
ist (im Programm überprüft) und die Daten dummerweise beim Schreiben und
Lesen immer schön von double zu string und zurück konvertiert wurden. Daher
habe ich den Fehler nicht bemerkt - DBNull gab es ja nicht.

Gibt es eine Möglichkeit nur per SQL-Befehle dies zu reparieren, wenn ja wie?
Oder muss ich in einer DataTable die Daten der entspr. Felder aller
Datensàtze einzeln übertragen?
 

Lesen sie die antworten

#1 Josef Poetzl
30/01/2009 - 20:34 | Warnen spam
Hallo!

Wolfgang Mueller schrieb:
ich habe in einer MS-Access DB aus Versehen eine Spalte einer Tabelle als
TEXT anstatt als DOUBLE angelegt. Die DB wird per VB.NET /ADO.NET2.0 gefüllt.
In dem Feld befinden sich jetzt Zahlen in Textform, da das Feld ein Mussfeld
ist (im Programm überprüft) und die Daten dummerweise beim Schreiben und
Lesen immer schön von double zu string und zurück konvertiert wurden. Daher
habe ich den Fehler nicht bemerkt - DBNull gab es ja nicht.

Gibt es eine Möglichkeit nur per SQL-Befehle dies zu reparieren, wenn ja wie?



Normalerweise sollte eine DDL-Anweisung für die Jet-Tabelle
ausreichen.
| alter table DeineTabelle alter column DeineSpalte double

Prüfe aber die korrekte Umwandlung der Dezimalzahlen. ("1.234" vs
"1,234")

mfg
Josef

Ähnliche fragen