起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 194|回复: 6

【结贴】删除本地数据出错。。

[复制链接]
发表于 2009-11-17 18:28:23 | 显示全部楼层 |阅读模式
我的删除代码如下:
procedure TPACT_HOTAL_FORMDOC.SpeedButtonDELETEClick(Sender: TObject);
var
i,num: Integer;
begin
    num:=0;
    if (DataSetBrokerPACT_HOTAL_DETAL.DataSet.Active) and (not DataSetBrokerPACT_HOTAL_DETAL.DataSet.IsEmpty) then
    begin
        num:=DataGridPACT_HOTAL_DETAL.SelectedCount;
        if num=0 then
        begin
             JsDialogs.ShowMsg('请先选择要删除的记录','提示');
             SysUtils.Abort;
        end
        else
        for i := 0 to num - 1 do
        begin
          TPACT_HOTAL_SEL_INFO(infobroker.Info).DataSetPACT_HOTAL_DETAL.Bookmark := DataGridPACT_HOTAL_DETAL.SelectedRows;
          TPACT_HOTAL_SEL_INFO(infobroker.Info).DataSetPACT_HOTAL_DETAL.Delete;
        end;
    end
    else
    begin
         JsDialogs.ShowMsg('记录为空','提示');
         SysUtils.Abort;
    end;
end;

第一次执行没问题,但第二次点删除时出错(此时没有选中记录)。但不知道为什么
DataGridPACT_HOTAL_DETAL.SelectedCount的值还是以前的值而不是0?
回复

使用道具 举报

 楼主| 发表于 2009-11-17 18:47:54 | 显示全部楼层
DataGridPACT_HOTAL_DETAL.Options := DataGridPACT_HOTAL_DETAL.Options - [TGroupListOption.egoExtMultiSelect];
//。。。。中间你的代码
   DataGridPACT_HOTAL_DETAL.Options := DataGridPACT_HOTAL_DETAL.Options + [TGroupListOption.egoExtMultiSelect];

这样就可以了。结了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-17 18:49:15 | 显示全部楼层
还是不行。。这样只能删除一条记录了。
该怎么办啊??
回复 支持 反对

使用道具 举报

发表于 2009-11-18 09:46:08 | 显示全部楼层
你检查一下你的代码的逻辑 是否有其他的代码影响到了。
另外,你可以用“SelectCount*DataGrid”在bbs上搜索一下看看是否可以解决你的问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-18 16:11:55 | 显示全部楼层
解决了。
代码中把 TPACT_HOTAL_SEL_INFO(infobroker.Info).DataSetPACT_HOTAL_DETAL.Delete;
变为 DataGridPACT_HOTAL_DETAL.delete; 就行了
回复 支持 反对

使用道具 举报

发表于 2009-11-18 16:15:10 | 显示全部楼层
呵呵,谢谢反馈
回复 支持 反对

使用道具 举报

发表于 2009-11-18 16:24:09 | 显示全部楼层
ok
谢谢共享方法
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-14 11:01 , Processed in 0.043995 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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