53分(我的所有)请教:关于ClientDataSet新增记录问题(请富翁们关注!谢谢)
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楼: 如果是网络数据库最好不要使用敏感控件。
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)