【发布时间】:2014-05-31 07:58:54
【问题描述】:
这是(非常简单的)问题:
我打开一个 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 类型的列扩展表,一切都会失败,尽管我尝试了我能想象到的每一种格式。
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 状态
那么,用 datetime 类型字段添加新记录的方法是什么,没有默认值?
谢谢你,再见, 伊斯特万
好的,那是别的东西! 我发现这与日期时间格式无关。我实际上想要做的是向 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)
有什么(新的)想法吗? :)
谢谢。
【问题讨论】:
标签: mysql vba datetime ado recordset