以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]追载运行错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=178125)

--  作者:2425004926
--  发布时间:2022/6/19 11:53:00
--  [求助]追载运行错误
是用sqltable导入数据,我把导入的数据重新追载到表,测试后这一行代码运行错误,请老师指点一下,哪里问题
Dim st As Date = Date.Now
DataTables("UserCom").AppendLoad("[TimeCreation] >= #" & st & "#")   \'创建时间大于等于点击导入按钮的时间

我又放到命令窗口中测试,还是同样的问题,运行错误
DataTables("UserCom").AppendLoad("[TimeCreation] >= #2022-06-19 11:27:38#")   \'时间大于点击导入按钮的时间,这个时间是刚才导入行的创建时间
DataTables("UserCom").AppendLoad("TimeCreation >= #2022-06-19 11:27:38#")   \'时间大于点击导入按钮的时间

都提示运行错误
\'11\' 附近有语法错误。
--  作者:2425004926
--  发布时间:2022/6/19 12:20:00
--  
 错误在时上,刚才是11点多,错误在11,现在12点多,测试错误是\'12\' 附近有语法错误。
--  作者:2425004926
--  发布时间:2022/6/19 12:26:00
--  
Dim dr As DataRow = DataTables("UserCom").find("TimeCreation >= #2022-06-19 11:27:38#")  
If dr IsNot Nothing
    Output.Show("1")
End If

测试查找没有问题,返回1

Dim dr As DataRow = DataTables("UserCom").sqlfind("TimeCreation >= #2022-06-19 11:27:38#")  
If dr IsNot Nothing
    Output.Show("1")
End If
没有返回值
[此贴子已经被作者于2022/6/19 12:31:21编辑过]

--  作者:有点蓝
--  发布时间:2022/6/19 20:51:00
--  
参考:http://www.foxtable.com/webhelp/topics/2914.htm

例如刷新今天的订单,即重新加载今天的订单:

LockBaseMainForm() \'锁定主界面
DataTables
("订单").StopRedraw()
DataTables
("订单").RemoveFor("日期 = #" & Date.Today & "#")
DataTables
("订单").AppendLoad("日期 = #" & Date.Today & "#")
DataTables
("订单").ResumeRedraw()
UnLockBaseMainForm
() \'解锁主界面

提示:

1、由于AppendLoad只能追载并不存在于DataTable中的行,所以我们首先要用RemoveFor移除要刷新的行,然后再用AppendLoad追载这些行。
2、我们只能用这种方法小批量地刷新数据,如果需要大量刷新数据,不如直接执行DataTable的Load方法来得简洁高效。

[此贴子已经被作者于2022/6/19 20:52:50编辑过]

--  作者:2425004926
--  发布时间:2022/6/20 12:14:00
--  
我又测试了一下,数据只有几行,字符串和数字都ok,这次还是时间报错,如果是日期,报错\'#\' 附近有语法错误。,如果是日期时间,报错是H

DataTables("UserCom").RemoveFor("Tag = \'7\'")   ‘字符串
DataTables("UserCom").AppendLoad("Tag = \'7\'")

DataTables("UserCom").RemoveFor("RepeatCount = 22")   ’数字
DataTables("UserCom").AppendLoad("RepeatCount = 22")

DataTables("UserCom").RemoveFor("ce = #" & Date.Today & "#")   ‘时间
DataTables("UserCom").AppendLoad("ce = #" & Date.Today & "#")


--  作者:有点蓝
--  发布时间:2022/6/20 13:25:00
--  
如果是SqlServer,看看:http://www.foxtable.com/webhelp/topics/2343.htm
--  作者:2425004926
--  发布时间:2022/6/20 16:56:00
--  
 谢谢老师,终于明白了,我用的是sql ,#号改为逗号,OK