Hatte jemand schonmal diese Meldung? (Xojo 2024r4.1, MS SQL Server 15.x, Windows 11)
[Microsoft][ODBC Driver 17 for SQL Server]Überlauf im Datetime-Feld.
Die Bruchsekundengenauigkeit überschreitet den in der Parameterbindung angegebenen Dezimalstellenwert.
Var db As New DBClass
Var values() As Double
For m As Integer = 1 To 12
Var dateFrom As DateTime = New DateTime(year,m,1, 0,0,0, 0)
Var interval As New DateInterval(0,1,0, 0,0,0, 0)
Var dateTo As DateTime = dateFrom + interval
'ODBC Driver 17 for SQL Server
Var rs As RowSet = db.SelectSQL("Select Sum(Wert) As Summe From EinAusgabe Where (Datum >= ? and Datum< ?)", dateFrom, dateTo)
While Not rs.AfterLastRow
values.Add(rs.Column("Summe").DoubleValue)
rs.MoveToNextRow
Wend
rs.Close
Next
my workaround:
Var rs As RowSet = db.SelectSQL("Select Sum(Wert) As Summe From EinAusgabe Where (Datum >= " + ODBCDate(dateFrom) + " and Datum< " + ODBCDate(dateTo) + ")")
Public Function ODBCDate(date As DateTime) As String
' { d '2024-03-01' }
Return "{ d '" + date.ToString("yyyy-MM-dd", Locale.Current) + "' }"
End Function