Καλησπέρα σας,
έχω μια βάση δεδομένων mysql-5 με κάποιους πίνακες και θέλω απλά να κάνω dump τα δεδομένα σε πίνακες του MS SQL Server 2008.
Δημιούργησα ακριβώς τους ίδιους πίνακες με τα ίδια πεδία. Για αρχή, έχω πρόβλημα με ένα πεδίο:
Field Name Type
MySql: Total decimal(15,4)
MSSql: -//- το δοκίμασα αρχικά decimal(15,4) και μετά και numeric(15,4)
(Άσχετο: η mysql είχε πολλά πεδία τύπου int(11) και τα έκανα map σε numeric(11,0) καλά έκανα; )
Παίρνω τα δεδομένα της mysql μέσα σε ένα dataset και το κάνω parse για να βάλω μια-μια τις εγγραφές στον MS Sql.
'mazi me oles tis params exoyme kai ayti pou me endiaferei
Dim p43 As New SqlParameter("@total", SqlDbType.Decimal)
p43.Precision = 4
p43.Size = 15
'parakatw...
Dim myDataRow As DataRow
For Each myDataRow In dSet.Tables(0).Rows
'as poyme pws exei mono ayto to field..
sql = "INSERT INTO [order](total) VALUES(@total)"
With cmd
p43.Value = IIf(IsDBNull(myDataRow("total")), DBNull.Value, myDataRow("total"))
.Parameters.Add(p43)
.CommandText = sql
.ExecuteNonQuery()
.Parameters.Clear()
End With
Next
Στην πρώτη εγγραφή που είναι να βάλει μέσα, η τιμή του πεδίου total στη mysql είναι: 124.2300 και παίρνω το μήνυμα λάθους:
"Parameter value '124.2300' is out of range"
Τι φταίει;
υγ: αν πάω παραπάνω στον κώδικα και βάλω με το χέρι, p43.Value = 0
τότε παίζει κανονικά.
Ευχαριστώ