起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: gundamcharred

【搞定】唯一性问题!**

[复制链接]
 楼主| 发表于 2007-6-5 08:56:11 | 显示全部楼层
没法解决么?
回复 支持 反对

使用道具 举报

发表于 2007-6-5 09:10:52 | 显示全部楼层
不要在数据表里设唯一,这里的唯一约束提示没法改,
在信息里的数据集上设“约束”属性,这里可以修改错误提示,很好用,我们都这么用的。
回复 支持 反对

使用道具 举报

发表于 2007-6-5 09:32:51 | 显示全部楼层
在保存的时候我加了个退出提示,用的是DATASETBROKER的AfterApplyUpdates事件;
添加的时候如果有唯一性问题,还没有到这一步就提示了.
如果你添加的记录跟当前数据集中的记录冲突,不唯一了,那么你不用提交,Post就会提示违反唯一性约束的错误

但是修改的时候就不是这样.我在AfterApplyUpdates事件里面写的退出提示都出来了,并且已经CLOSE掉了,这时才会出来提示,而且提示是不一样的
在AfterApplyUpdates事件时候,数据并没有提交给服务端呢,如果你是跟服务端的数据违反唯一性约束,这时候不会报错,因为事务还没有提交呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-5 17:06:33 | 显示全部楼层
哦 原来如此啊!!!我试一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-5 17:29:31 | 显示全部楼层
yanyequan的方法我试了,以前也用过,这次还是有问题,同样出现在修改时.
至于alang的提示我倒是明白了,可是要用什么方法呢?要在什么地方作退出提示,才是事务已经提交之后的结果呢?换句话说我的退出提示要作在哪个事件之后呢?ONUPDATA么?
回复 支持 反对

使用道具 举报

发表于 2007-6-5 17:39:27 | 显示全部楼层
你在保存之前加入以下代码试试看看,我们是这么用的:

DataSetBroker.DataSet.Edit;
DataSetBroker.DataSet.Post;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-5 17:44:54 | 显示全部楼层
请问这个在哪里加呢???加在按钮事件上么?还是DATASET.AfterApplyUpdates???
回复 支持 反对

使用道具 举报

发表于 2007-6-5 17:53:11 | 显示全部楼层
我们加在 DataNavigator1BeforeAction 事件里:
procedure TForm_GGJCZCTGrid.DataNavigator1BeforeAction(Sender: TObject; var Accept: Boolean);
var
  lBizDataSetAction: TBizDataSetAction;
  lAbstractDataSet: TAbstractDataSet;
  lTag: Integer;
begin
  Inherited;

  lBizDataSetAction := TBizDataSetAction(Sender);
  lAbstractDataSet := lBizDataSetAction.CurrentDataSource.DataSet;

  case lBizDataSetAction.ID of
    BizActnConsts.ActionDataSetAppend:
      begin
        ...
      end;
    BizActnConsts.ActionDataSetCancel:
      begin
        ...
      end;
    BizActnConsts.ActionDataSetDelete:
      begin
        ...
      end;
    BizActnConsts.ActionDataSetSave:
      begin
        lAbstractDataSet.Edit;
        lAbstractDataSet.Post;
      end;

  end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-5 17:57:48 | 显示全部楼层
哦 那就是按钮事件了 可是我们是统一用的ACTIONLIST 按钮事件都没加东西 要是我都改了也行 就是按钮有点多啊
回复 支持 反对

使用道具 举报

发表于 2007-6-5 18:04:48 | 显示全部楼层
你们有没有继承阿,我们是写在了一个父窗体里了,所有的窗体都继承它,所以很简单,不然就很麻烦了
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-22 00:17 , Processed in 0.037190 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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