Foxtable(狐表)用户栏目专家坐堂 → [求助]如何从后台删除SQL数据库大量行?


  共有2847人关注过本帖树形打印复制链接

主题:[求助]如何从后台删除SQL数据库大量行?

帅哥哟,离线,有人找我吗?
明天的灵
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:405 积分:4927 威望:0 精华:0 注册:2017/2/7 7:41:00
[求助]如何从后台删除SQL数据库大量行?  发帖心情 Post By:2021/6/5 23:53:00 [显示全部帖子]

帮助中例子http://www.foxtable.com/webhelp/topics/2899.htm

在DataTable中一次性删除大量的行,然后保存,效率是比较低的。
我们可以用
SQLDeleteFor直接从后台删除符合条件的行,然后用RemoveFor从DataTable移除符合条件的行,效率会提高很多,例如:

DataTables("表A").SQLDeleteFor("产品编号 = 1")
DataTables
("表A").RemoveFor("产品编号 = 1")


这里只有一个条件,一行数据。如果条件改为删除所有与表B列“产品编号”相同的产品,不知道如何写,请指点

[此贴子已经被作者于2021/6/6 0:01:50编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
明天的灵
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:405 积分:4927 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2021/6/6 11:39:00 [显示全部帖子]

采用遍历表B记录可以吗?
Dim dd As Integer '产品编号为整数型
For
 Each dr As DataRow In DataTables("表B").DataRows
    dd  = dr(
"产品编号")
     DataTables("表A").SQLDeleteFor("产品编号 = “ & dd )
     DataTables
("表A").RemoveFor("产品编号 = “ & dd)
Next

 回到顶部
帅哥哟,离线,有人找我吗?
明天的灵
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:405 积分:4927 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2021/6/6 21:14:00 [显示全部帖子]

谢谢,简洁多了

 回到顶部
帅哥哟,离线,有人找我吗?
明天的灵
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:405 积分:4927 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2021/6/8 22:56:00 [显示全部帖子]

DataTables("表A").SQLDeleteFor("编号 in (Select 编号 fro m {表B})")
DataTables("表A").Load
上面代码执行时,出错:
语法错误。 在查询表达式 '编号 in (Sel ect 编号 fro m {表B})' 中。


 回到顶部
帅哥哟,离线,有人找我吗?
明天的灵
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:405 积分:4927 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2021/6/8 23:46:00 [显示全部帖子]

谢谢


 回到顶部