Eftersom du inte anger typen på parametern i ditt sista exempel, formateras det troligtvis som short date.
Lösningen bör väl vara att använda CreateParameter() som i ditt första exempel.
2 svar · 384 visningar · startad av fedde
Jag har en kolumn i MySQL som är TIMESTAMP och har defaultvärde CURRENT_TIMESTAMP.
Det fungerar bra när jag lägger in en ny rad:
strSQL = "INSERT INTO orders (userid, sort, quantity, message, orderdate) VALUES (?,?,?,?,?)"
Comm.CommandText = strSQL
Comm.Parameters.Append(Comm.CreateParameter("userid", adInteger, adParamInput,, intUserId))
Comm.Parameters.Append(Comm.CreateParameter("sort", adInteger, adParamInput,, intSort))
Comm.Parameters.Append(Comm.CreateParameter("quantity", adInteger, adParamInput,, intQuantity))
Comm.Parameters.Append(Comm.CreateParameter("message", adVarChar, adParamInput, 200, strMess))
Comm.Parameters.Append[B](Comm.CreateParameter("orderdate", adDBTimeStamp, adParamInput,, NOW()))[/B]
Call Comm.Execute()
Problemet är när jag ska uppdatera raden. Det funkar om jag skriver:
[B]dteDate = CStr(NOW)[/B]
strSQL = "UPDATE orders SET quantity=?, message=?, [B]orderdate=?[/B] WHERE userid=? AND sort=?"
Comm.CommandText = strSQL
Call Comm.Execute (, array(intQuantity, strMess, [B]dteDate[/B], intUserId, intSort))
Det jag inte fattar är varför jag måste omvandla NOW till en sträng. Om jag inte gör det så sparas bara datumet och tiden blir noll: 2008-04-27 00:00:00
strSQL = "UPDATE orders SET quantity=?, message=?, [B]orderdate=?[/B] WHERE userid=? AND sort=?"
Comm.CommandText = strSQL
Call Comm.Execute (, array(intQuantity, strMess, [B]NOW()[/B], intUserId, intSort))
Eftersom du inte anger typen på parametern i ditt sista exempel, formateras det troligtvis som short date.
Lösningen bör väl vara att använda CreateParameter() som i ditt första exempel.
Så är det ju! Självklart ;)
Tack!!!
:e