Bei einem ADODB Command bekomme ich beim INSERT INTO bei den Doublewerten immer die Fehlermelsung Precision is invalide
Es handelt sich bei der Datenbank um eine Microsoft MySql-DB
Die veruche die Double alsscheitern kläglich adDecimal, adDouble oder adNumeric zu übergeben,
Public Sub AddReportItem(item As ReportDTO, Optional isNew As Boolean = False)
If (isNew) Then
Set cmd = New ADODB.Command
With cmd
cmd.ActiveConnection = acc.ConnectionString
cmd.CommandText = "INSERT INTO Tkt.T_Report (ReportNR, CustomerID, CreationsDate, VAT, HourPrice, TravelExpences, IsScaned, " & _
"FilePath, FreeArticleRow) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"
.Parameters.Append .CreateParameter(, adInteger, adParamInput, value:=item.jsReportNr)
.Parameters.Append .CreateParameter(, adInteger, adParamInput, value:=item.jsCustomerID)
.Parameters.Append .CreateParameter(, adDate, adParamInput, value:=item.jsCreationDate)
' Dies sind die 3 Werte die im Code den Wert Double haben und den Fehler auslösen.
.Parameters.Append .CreateParameter(, adNumeric, adParamInput, 0, item.jsVAT)
.Parameters.Append .CreateParameter(, adNumeric, adParamInput, 0, item.jsHourePrice)
.Parameters.Append .CreateParameter(, adNumeric, adParamInput, 0, item.jsTravelExpence)
.Parameters.Append .CreateParameter(, adInteger, adParamInput, value:=IIf(item.jsIsScanned = False, 1, 0))
.Parameters.Append .CreateParameter(, adVarChar, adParamInput, 256, item.jsFilePath)
.Parameters.Append .CreateParameter(, adInteger, adParamInput, value:=item.jsArticleRow)
.Parameters.Append .CreateParameter(, adInteger, adParamInput, value:=item.jsFreeArticleRow)
acc.ExecuteCommand cmd
Set cmd = Nothing
Set rs = acc.GetRecordSet("SELECT Max(ID) FROM Tkt.T_Report", rsCount)
rs.MoveFirst
item.jsID = CLng(rs.Fields(0))
item.jsID = CLng(rs.Fields(0))
rs.Close
Set rs = Nothing
End With
End If
With stb_Rp
.ListRows.Add
rowIndex = .ListRows.count
.DataBodyRange.Cells(rowIndex, 1) = item.jsID
.DataBodyRange.Cells(rowIndex, 2) = item.jsReportNr
.DataBodyRange.Cells(rowIndex, 3) = item.jsCustomerID
.DataBodyRange.Cells(rowIndex, 4) = item.jsCreationDate
.DataBodyRange.Cells(rowIndex, 5) = item.jsVAT
.DataBodyRange.Cells(rowIndex, 6) = item.jsHourePrice
.DataBodyRange.Cells(rowIndex, 7) = item.jsTravelExpence
.DataBodyRange.Cells(rowIndex, 8) = item.jsFilePath
.DataBodyRange.Cells(rowIndex, 9) = item.jsIsScanned
.DataBodyRange.Cells(rowIndex, 10) = item.jsArticleRow
.DataBodyRange.Cells(rowIndex, 11) = item.jsFreeArticleRow
End With
End Sub
Wie muss ich die Double-Werte im Command übergeben?Gruss Alex