*****棘手!!!!,在三层结构中插入记录如何自动生成主键的问题,挑战各位

ncw 2003-01-06 04:52:34
在三层中,怎么生成一个唯一主键(不是用户输入)用AutoInc行不行,如何处理并发问题,更进一步如何假如是主从表,在客户端没有应用更新之前并且主表的主键还未生成,从表如何关联主表,
...全文
46 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaga_ghost 2003-01-10
  • 打赏
  • 举报
回复
上面的一个老兄告诉你了,为什么不用触发器呢?
ihihonline 2003-01-10
  • 打赏
  • 举报
回复
这样吧,再应用程序服务器里写;肯定没有错;但是这个过程如:Insert/Append要再应用程序服务器里写,客户端只负责传递参数;Data就可以了
ihihonline 2003-01-10
  • 打赏
  • 举报
回复
问题是你的主关键字有什么用处?有什么规律?以后还用得上她么?做什么用?这些清楚了之后你就可以作了;如果主关键字有用的话,就需要根据返回信息再次核对,如果没有用的话 hps9743003(笨笨) 说得可以考虑,但是xiaoyan21(明月心) 的方法还是不太好,就应为试多层的;
EastenChild 2003-01-09
  • 打赏
  • 举报
回复
1.生成GUID值:CreateGuid,具体用法看帮助
2.在子表的OnNewRecord中把它赋给主键
xiaoyan21 2003-01-09
  • 打赏
  • 举报
回复
我觉得我那种方法是较有效的,也简单.

有简单的方法为什么不用呢?

当然具体的情况有所不同.

xxsun 2003-01-07
  • 打赏
  • 举报
回复
添加触发器,在insert时出发
star_of_light 2003-01-07
  • 打赏
  • 举报
回复
让数据库自动生成。
zhxfzhxf1 2003-01-07
  • 打赏
  • 举报
回复
gz
skypeople 2003-01-07
  • 打赏
  • 举报
回复
太笨了的方法吧,试试在APPLYUPDATE时将保存主表的SQL的传到中介层在BEFOREUPDATE中执行后取回主建再保存细表
xiaoyan21 2003-01-07
  • 打赏
  • 举报
回复
不过,我已经有方法解决了.

你新建一个表吧,这个表可以只有一个字段,这个字段用来存放主表的记录数.

比如:

新建表:die_tab
字段1:ID(自动生成)
字段2:RecordCount(用来存放记录数)

所以,你的主键可以自动生成为RecordCount的值+1.

这里要注意几点:
当你读取RecordCount的值的时候就必须将字段更改为RecordCount+1;
你不能直接读取主表的RecordCount属性的值,因为你是分布式结构,要考虑
多用户情况.



xiaoyan21 2003-01-07
  • 打赏
  • 举报
回复
随闷啊.....我也有这种问题...

xiaoyan21 2003-01-07
  • 打赏
  • 举报
回复
随闷啊.....我也有这种问题...

TOMWLD 2003-01-06
  • 打赏
  • 举报
回复
AutoInc能不用尽量不用吧
hps9743003 2003-01-06
  • 打赏
  • 举报
回复
关于唯一的主键
有的数据库支持自动生成唯一标识符
比如ACCESS
如果是在程序里生成的话如果用AUTOINC那么数据量有限
可以调用API里的一个函数生成唯一的标识符
(如:{098f2470-bae0-11cd-b579-08002b30bfeb})
以其做字段
ytwxw 2003-01-06
  • 打赏
  • 举报
回复
只能从数据库里取啦
楼主
然后给从表了
怎么取?
自己想办法啊,并发问题也要自己控制啊

eastliangliang 2003-01-06
  • 打赏
  • 举报
回复
建库的时候没设置吗?

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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