起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 381|回复: 8

【结】TSQLDataSet和TQuery

[复制链接]
发表于 2010-4-15 16:53:59 | 显示全部楼层 |阅读模式
比如有个循环插入N条数据
如果用TSQLDataSet一般是建议N次Post后,一起ApplyUpdates
那TQuery呢,只能每条一Execute是吧
回复

使用道具 举报

发表于 2010-4-15 17:36:33 | 显示全部楼层
你可以使用ApplyUpdates啊
如果是update的sql也可以一次Execute多条记录。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-16 15:03:41 | 显示全部楼层
你可以使用ApplyUpdates啊什么意思
一次Execute多条记录,我是Insert
回复 支持 反对

使用道具 举报

发表于 2010-4-16 15:43:35 | 显示全部楼层
对字段赋值的方式执行query.ApplyUpdates
如果执行的是insert或者update的sql语句用execute,一条sql执行一次execute
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-17 09:52:16 | 显示全部楼层
不好意思,还是没看懂你意思
回复 支持 反对

使用道具 举报

发表于 2010-4-17 15:45:50 | 显示全部楼层
呵呵,楼主说说,你是怎么insert呢?
shangxy说的应该是query.insert 吧,你是类似 insert into pbpzb (id,xs) values ('1','早班')这样的SQL吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-19 17:33:11 | 显示全部楼层
TSQLDataSet的:
  AMessageDataSet.Append;
  AMessageDataSet.FieldByName('Subject').AsString := ASubject;
  AMessageDataSet.FieldByName('ToPerson').AsString := APersonID;
  AMessageDataSet.Post;
然后一起AMessageDataSet.ApplyUpdates;
TQuery的:
  AMessageQuery.CommandText := SQL;
  AMessageQuery.Params.ParamByName('pFROM_ID').AsString := 'X3';
  AMessageQuery.Params.ParamByName('pSEND_FLAG').AsString := '0';
  AMessageQuery.Execute;
这个每条都要Execute,能不能也类似DataSet先Post后ApplyUpdate?这个和数据库的事务提交有关系吗?
回复 支持 反对

使用道具 举报

发表于 2010-4-20 09:02:50 | 显示全部楼层
我的意思就是说:
如果你是query.insert 方法,那么可以使用query.ApplyUpdates来提交数据。
如果是query.CommandText  这个是插入的sql语句,那么需要使用query.Execute方法来提交,不能先post然后一起Execute
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-20 11:07:43 | 显示全部楼层
明白了。ok结贴谢谢。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-9 06:17 , Processed in 0.040432 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表