在三层中,怎么生成一个唯一主键(不是用户输入)用AutoInc行不行,如何处理并发问题,更进一步如何假如是主从表,在客户端没有应用更新之前并且主表的主键还未生成,从表如何关联主表,

解决方案 »

  1.   

    关于唯一的主键
    有的数据库支持自动生成唯一标识符
    比如ACCESS
    如果是在程序里生成的话如果用AUTOINC那么数据量有限
    可以调用API里的一个函数生成唯一的标识符
    (如:{098f2470-bae0-11cd-b579-08002b30bfeb})
    以其做字段
      

  2.   

    不过,我已经有方法解决了.你新建一个表吧,这个表可以只有一个字段,这个字段用来存放主表的记录数.比如:新建表:die_tab
    字段1:ID(自动生成)
    字段2:RecordCount(用来存放记录数)所以,你的主键可以自动生成为RecordCount的值+1.这里要注意几点:
       当你读取RecordCount的值的时候就必须将字段更改为RecordCount+1;
       你不能直接读取主表的RecordCount属性的值,因为你是分布式结构,要考虑
       多用户情况.
      

  3.   

    太笨了的方法吧,试试在APPLYUPDATE时将保存主表的SQL的传到中介层在BEFOREUPDATE中执行后取回主建再保存细表
      

  4.   

    1.生成GUID值:CreateGuid,具体用法看帮助
    2.在子表的OnNewRecord中把它赋给主键
      

  5.   

    问题是你的主关键字有什么用处?有什么规律?以后还用得上她么?做什么用?这些清楚了之后你就可以作了;如果主关键字有用的话,就需要根据返回信息再次核对,如果没有用的话 hps9743003(笨笨) 说得可以考虑,但是xiaoyan21(明月心) 的方法还是不太好,就应为试多层的;
      

  6.   

    这样吧,再应用程序服务器里写;肯定没有错;但是这个过程如:Insert/Append要再应用程序服务器里写,客户端只负责传递参数;Data就可以了