这是(非常简单)问题:
我打开一个MySql表作为ADO记录集(以例如" product"命名)。我们假设该表有两个INT字段(例如" int1"," int2"),它们都没有默认值,所以当我添加一个新记录时记录集,我必须提供这些。
到目前为止,代码工作正常,这就是:
product.AddNew Array("int1", "int2"), Array(1, 2)
(代码的其他一些细节:
oConn.CursorLocation = adUseClient
product.Open sqlstr, oConn, adOpenStatic, adLockBatchOptimistic, adCmdText
Set product.ActiveConnection = Nothing)
好的,所以问题是,如果我使用on datetime typed列扩展表,一切都会失败,尽管我尝试了各种我能想象的格式。
product.AddNew Array("int1", "int2", "test"), Array(1, 2, "2014-01-01")
product.AddNew Array("int1", "int2", "test"), Array(1, 2, "20140101")
product.AddNew Array("int1", "int2", "test"), Array(1, 2, "'2014-01-01'")
product.AddNew Array("int1", "int2", "test"), Array(1, 2, dateserial(2014,01,01))
等等......
出现错误信息: 运行时错误' -2147467259(80004005)': 数据提供程序返回E_FAIL状态
那么,使用日期时间类型字段添加新记录的方式是什么,没有默认值?
谢谢,再见, 的Istvan
好的,那是有点儿的! 我发现它与日期时间格式无关。我正在尝试做的是将新记录添加到PrestaShop 1.4' ps_product'表,作为ADO记录集打开(见上文) 该表有3个字段,没有默认值,但即使我使用正确的格式,我仍然会收到上面相同的错误消息
所以这不起作用:
tmp = ps_product.Fields("date_upd").Value
ps_product.AddNew Array("id_tax_rules_group", "date_add", "date_upd"), Array(1, tmp, tmp)
任何(新的)想法? :)
谢谢。
答案 0 :(得分:0)
在这种情况下,我认为您可以直接将日期作为日期传递。