三层结构中生成编号的问题(100分)

  • 主题发起人 主题发起人 ztliuyun
  • 开始时间 开始时间
Z

ztliuyun

Unregistered / Unconfirmed
GUEST, unregistred user!
三层结构中,时间可用ORACLE,客户端用CLIENTDATASET,在相连的DBGRID上输入新记录时,
(不止一条)为保证在数据表格中编号的连续(编号为一字段,是流水号),如何处理,请大虾们
帮助.
 
在中间层写一个方法,在客户端调用
 
我的意思是:1.由于是多用户操作,新记录编号是否在提交数据库时生成。若这样的话,
怎样具体实现?
2。若按icel所说,调用中间层方法,似乎只能生成一个编号,对一批怎么起作用?还有
就是怎样把得到的编号赋给Clientdataset或是DBGRID中的那个特定记录的编号字段?
 
在存储过程里实现
 
sam_sam_2000,能不能说得详细一点呀
 
三层结构生成编号有几种处理方式
如果如你所说是新添数据,可以在datasetprovider的onupdatedata事件中加代码
对传过来的dataset参数进行编辑,生成编号如:
with datasetdo
begin

while not eofdo
begin
edit;
fieldbyname('编号').Asstring:=你想生成的编号,具体实现你自己写;
post;
next;
end;
end;

因为你是多客户使用,所以在中间写方法客户端调用是不可行的
还有一种方法就是在数据库服务器上写触发器来实现了
 
morboy你真的是新手吗?
 
re:三层结构中生成编号的问题
为什么一定要保证在数据表格中编号的连续?
如果不连续
1 可以读取client nic 的mac地址+流水号
2 cpu 是pIII,读取序列号+流水号
3 读取hdd serial no+流水号
4 生成guid
以上方法都可以生成唯一值 显示给client看得时候,在格式化成连续编号
不止以上方法是否可以
 
to caiaj
标准新手加菜鸟,说错了不要见怪
 
补充:我的表格内存储的是入库单之类的单据,流水号自然要连续,新增记录的编号要依赖
于表格内的最后一个编号。我的困惑就是如何在多用户的环境中得到这个正确的编号。
 
按我的方式应该没问题
因为即使多用户,提交数据总有先后
你在提交的时候再根据数据库的最后一个数据编号产生新的编号
应该是最新的
 
听morboy的没错
 
暂时接受
 
暂时接受
 
后退
顶部