clientdataset,再度杯具

2540546520 2010-10-29 10:19:09
我在表tb_user中设置结构 id , name (其中id自增字段且为主键)
程序中定义两个clientdataset , 分别是 FCDS1 ,FCDS2 (两个数据集都对应tb_user)
现在我把该表数据放到FCDS1中并显示在dbgrid1中,我要实现的操作如下:
双击dbgrid1 的某条记录 ,那么在FCDS1中删除这条记录,同时在FCDS2中增加这条记录:我是这样操作的:
FCDS2.Append;
FCDS2.FieldByName('name').Asstring:=FCDS1.FieldByName('name').Asstring;
FCDS2.post;
目的是要修改FCDS2中的记录。
错误如下:因为 id 是自增字段,所以我FCDS2.Append时,id的值自增了,这样我就没法修改tb_user中对应的值了,就这样,杯具了,高手??
有没办法让FCDS2.FieldByName('id').Asstring 可以赋值。
或者其他办法。
我试了如下方法,可是不行:
FCDS2.Fields[0].Required:=True;
FCDS2.Fields[0].AutoGenerateValue:=arNone;
...全文
180 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Versus1008 2010-10-29
  • 打赏
  • 举报
回复
1。去掉 表tb_user id自增
2。FCDS2 用新表 不设置自增
2540546520 2010-10-29
  • 打赏
  • 举报
回复
关键是怎么取消这个自增类型
2540546520 2010-10-29
  • 打赏
  • 举报
回复
试过了,还是写不到数据库里去
kye_jufei 2010-10-29
  • 打赏
  • 举报
回复
取消表FCDS2的自增類型,直接將FCDS1的ID寫過去。。。
软件钢琴师 2010-10-29
  • 打赏
  • 举报
回复
(其中id自增字段且为主键)
自增的 不好赋值
ForFumm 2010-10-29
  • 打赏
  • 举报
回复
可以这样。。。
SET IDENTITY_INSERT [dbo].[TABLENAME] ON
GO
...插入语句
SET IDENTITY_INSERT [dbo].[TABLENAME] OFF
GO
kye_jufei 2010-10-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chensongbin0 的回复:]
试过了,还是写不到数据库里去
[/Quote]
設計你的這個FCDS2表,把自增類型修改為不是自增類型即可。。。
bluesukeke 2010-10-29
  • 打赏
  • 举报
回复
有点不明白楼主意思,是否要修改fcd2中和fdcd1id对应的值,如是方法如下:不需要append,直接locate 两个表对应的id。找到再FCDS2.FieldByName('name').Asstring:=FCDS1.FieldByName('name').Asstring;再删除FCDS1对应id的记录。

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧