码迷,mamicode.com
首页 > 其他好文 > 详细

53分(我的所有)请教:关于ClientDataSet新增记录问题(请富翁们关注!谢谢)

时间:2020-11-20 11:36:21      阅读:6      评论:0      收藏:0      [点我收藏+]

标签:表结构   rpo   lte   rgba   sql   主键   rgb   序号   显示   

1楼: 数据库为SQL Server2000,表结构为: djbh char 10 单句号 主键 sort int   序号 sn: int    排列号 主键 spid char 40  商品ID shl decimal  数量 ...... 使用 Query->DataSetProvider->ClientDataSet 我需要: 1。在录入时在DBGrid的左边显示序号,就是数据表的sort,在资料删除时sort保持连续排列。 2。sn是否可以在ClientDataSet中设为自增字段,在数据表中sn不是自增。 3。在新增记录时怎么判断当前新增记录在ClientDataSet已经存在,并且给出提示,让用户选择是否可以重复。 真心请教各位富翁。。

 

2楼: 问题是不是有难度啊? 字串8

 

3楼: 1.Query有记录号,是按顺序排的 2.ClientDataSet中不能设自增字段,只能在数据库中设 3.判断重复只能由程序来做,主要是对主键做判断

 

4楼: 谢谢lgxyy的回答。 我使用过Query记录号,也使用过计算字段做序号,也在ClientDataSet中用了自增字段。 然后在AfterPost ClientDataSet1.Edit; ClientDataSet1.FieldByName(‘dj_sort‘).AsInteger:=。。。 ClientDataSet1.FieldByName(‘dj_sn‘).AsInteger:=。。。 但总觉得不是好办法。 如果用主键判断是否重复的话,就不容许重复了。

 

5楼: 其实楼上的那样做就可以了,要不你可以换另一种方法,在onnewrecord时 sort :=sort +1 sn:=sn+1 然后马上给它post 在post后在Applydata 以下, 同理,删除的时候相反,我以前做过和你类似的,就是用这样的办法, 客户一直在用,都没啥问题

 

6楼: 可以在SQL语句中添加一个列 I := i + 1;

 

7楼: 我设置 ClientDataSet.FieldByName(‘djbh‘).AutoGenerateValue:=arDefault; ClientDataSet.FieldByName(‘djbh‘).DefaultExpression:=‘AAAA0001‘; 在新增记录时自动获得了djbh的值。但是设置 ClientDataSet.FieldByName(‘sn‘).AutoGenerateValue:=arAutoInc; 不知道 ClientDataSet.FieldByName(‘sn‘).DefaultExpression:=??

 

8楼: ez 字串5

 

9楼: 如果是网络数据库最好不要使用敏感控件。

53分(我的所有)请教:关于ClientDataSet新增记录问题(请富翁们关注!谢谢)

标签:表结构   rpo   lte   rgba   sql   主键   rgb   序号   显示   

原文地址:https://www.cnblogs.com/jijm123/p/13976559.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!