Delphi tips

原创 2011年01月17日 15:55:00

1. When using TDataSet, if you want to check the data is changed or not, you can use ChangeCount porperty, but before this, you should Post all modifications. ChangeCount collects the counts of Posts. Or you can use TDataSet.Modified to check the modifications.

 

2. ''record not found or changed by  another user'',这个错误是我在做项目时,遇到的问题,找了一些参考才解决。如下:

所用的控件有:TDataSetProvider,TADOQuery,TClientDataSet

1.当 DataSetProvider.UpdateMode=upWhereAll 时,update时 where 是指定全部字段,比如,你有a、b、c 3个字段,修改了c字段,在app server中修改的命令是update ... set c=新c where a=旧a and b=旧b and c=旧c

如果 旧的a、b、c之一 已经被其他人改掉了,那where就找不到合适的记录来修改了。所以报告“记录被其他人修改”,这个问题和“锁定”是无关的。

2.当 DataSetProvider.UpdateMode=upWhereKeyOnly 时,update时 where 是指定key字段,比如,

你有a、b、c 3个字段,修改了c字段,a是key field在app server中修改的命令是

update ... set c=新c where a=旧a (只比较a字段)你的程序应该设计为客户修改不到主键字段的值,这样

你的客户只能修改到其他字段的值,其他字段不会出现在where中,就不会出现你说的问题了。

(用第2种方法解决,注意如果你的表原来没有主键的,需要双击dataset,添加你的所有field,在有唯一值的field的 ProviderFlasgs 属性里面 InKey 设置为 true (该field必须是有唯一值的,能相当于主键的,也就是能唯一确定该行记录的),TADOQuery,TClientDataSet控件里的唯一值的field字都要设置InKey为true)

 

3. You can use CloneCursor function to get a copy of the clientdataset.

delphi tips(2)

  • 2007年09月25日 13:55
  • 5.35MB
  • 下载

Delphi and C++Builder Tips and Techniques

  • 2009年05月17日 13:14
  • 124KB
  • 下载

Linux Tips(持续更新)

转载请注明,来自:http://blog.csdn.net/skyman_2001 一、查看目前有谁在线: who 二、数据同步写入磁盘: sync 三、增加一般用户: useradd u...

jupyter notebook tips tricks

  • 2017年11月24日 10:53
  • 1.06MB
  • 下载

Android下常见终端模拟器和SSH客户端感受及几个Tips

之前用Linux Deploy 部署了Kali Linux 。让我这阵子拿到平板有一半的时间是在用终端模拟器(Terminal Emulator)连接。 安卓的终端模拟器,对我来说有3个比较重要...

Swifter - Swift必备Tips(第三版)

  • 2017年10月25日 15:26
  • 2.5MB
  • 下载

Tips_Jupyter_Notebook_Up

  • 2017年10月19日 13:03
  • 321KB
  • 下载

谷歌搜索技巧Google Search Tips

转载: https://sites.google.com/site/zzllrr/google-search-tips 本文介绍Google搜索技巧与窍门Google Search Gu...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi tips
举报原因:
原因补充:

(最多只允许输入30个字)