以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  使用web数据源,日期时间型字段录入时会出现异常(疑似bug)  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=174797)

--  作者:notebook
--  发布时间:2022/2/6 23:54:00
--  使用web数据源,日期时间型字段录入时会出现异常(疑似bug)
问题描述:使用web数据源时,表中有“日期时间”型字段,且将该字段设置成“DateTime”和“DateLongTime”,数据新增、保存或删除等任何操作会出现以下错误提示
  
运行错误:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.1.30.2
错误所在事件:
详细错误信息:
HttpInsert错误(标准表达式中数据类型不匹配。)


备注:1、直连数据库正常,没有以上错误提示;2、采用web数据源,将该“日期时间”型字段设置成“Date”、“Time”、“LongTime”类型,所有操作正常,没出现以上错误提示。
[此贴子已经被作者于2022/2/6 23:59:24编辑过]

--  作者:程兴刚
--  发布时间:2022/2/7 0:22:00
--  
我搞过Web数据源,没出现过您说的问题,把HttpInsert相关的代码发上来!
--  作者:有点蓝
--  发布时间:2022/2/7 8:46:00
--  
保存的代码发上来。如果是使用access数据库,给日期赋值的时候要格式化一下,去掉毫秒
--  作者:notebook
--  发布时间:2022/2/7 15:22:00
--  
以下是引用有点蓝在2022/2/7 8:46:00的发言:
保存的代码发上来。如果是使用access数据库,给日期赋值的时候要格式化一下,去掉毫秒

1、使用的access;
2、web服务端HttpRequest代码

Select Case e.Path
    Case "DataServer.htm"
        e.AsDataServer("data")
End Select

3、客户端
DataRowAdding代码
e.DataRow("字符") = "字符哦"
e.DataRow("日期时间") = Date.Now()  ‘采用web数据源时,这里字段只要为“DateTime”、“DateLongTime”,新增保存都会出错,而“Date”、“Time”、“LongTime”就无问题。
e.DataRow("逻辑") = True
e.DataRow("整数") = 100
e.DataRow("短整数") = 10
e.DataRow("微整数") = 1
e.DataRow("双精度小数") = 100.01
e.DataRow("单精度小数") = 100.1
e.DataRow("高精度小数") = 100.001
e.DataRow("备注") = "备注哦"

DataRowAdded代码(这里加个保存行命令,效果更明显,保存时系统发现“类型不匹配”就出现提示错误)
e.DataRow.Save()

备注:以上客户端代码不变,改成直连access数据库,一切正常。


[此贴子已经被作者于2022/2/7 15:31:15编辑过]

--  作者:有点蓝
--  发布时间:2022/2/7 15:32:00
--  
e.DataRow("日期时间") = format(Date.Now() ,"yyyy-MM-dd HH:mm:ss")
--  作者:notebook
--  发布时间:2022/2/7 15:41:00
--  
以下是引用有点蓝在2022/2/7 15:32:00的发言:
e.DataRow("日期时间") = format(Date.Now() ,"yyyy-MM-dd HH:mm:ss")

收到,多谢,没意识到这个细节,现在正常了。