采用MIDAS开发三层,有一个问题闲扰了我很久。如下主表
MID NAME 说明MID为整型主键且自增长,步长为1
1 A
2 B
3 C
从表
DID MID CORE 说明DID,MID为组合主键且MID为主表的外键
1 1 76
1 2 82
1 3 68
2 1 71
2 2 65
2 3 89我在应用服务器上分别用两个ADODataset对应主从表,并设置好以MID为关联(就是常说的巢状数据集)用一个DataSetProvider取主表的数据,客户端分别用两个ClientDataSet一主一从,将数据显示在DBGrid中:
当我添加数据时,无法处理:
原因如下:
先添加主表一条数据,保存post
然后选中刚添加的这条数据,在从表中添加数据
因为主表那条数据的MID值要保存在从表中,但是在未提交之前主表的MID值,因此导致从表无法把那个外键的值加上,导致无法提交。
这种情况怎么处理?
不知道我说明白了没有,希望有人能帮我,分不是问题
MID NAME 说明MID为整型主键且自增长,步长为1
1 A
2 B
3 C
从表
DID MID CORE 说明DID,MID为组合主键且MID为主表的外键
1 1 76
1 2 82
1 3 68
2 1 71
2 2 65
2 3 89我在应用服务器上分别用两个ADODataset对应主从表,并设置好以MID为关联(就是常说的巢状数据集)用一个DataSetProvider取主表的数据,客户端分别用两个ClientDataSet一主一从,将数据显示在DBGrid中:
当我添加数据时,无法处理:
原因如下:
先添加主表一条数据,保存post
然后选中刚添加的这条数据,在从表中添加数据
因为主表那条数据的MID值要保存在从表中,但是在未提交之前主表的MID值,因此导致从表无法把那个外键的值加上,导致无法提交。
这种情况怎么处理?
不知道我说明白了没有,希望有人能帮我,分不是问题
解决方案 »
- [求助]用internetopenurl获取网页代码出现问题。
- dephi查错问题
- query组件,SQL插入一条数据编译通过,运行时却出错,请高手进来看看呀
- 争救,读取32位带alpha通道的tga文件
- 关于Backspace键和programicon的问题
- 对NMFTP上传文件的一个疑问?
- 如何设置宽行打印纸
- 关于过程的问题
- 如何将内存中一个流读为String,如何把一个字符串转为流,我不要用临时文件的方法
- 如何将应用程序按模块发布?
- Intraweb 有没有像RICHEDIT的控件,我需要在其中加入图像及彩色文字在其中...
- 這代碼錯在哪? 急救! 急救! 急救! 急救! 急救! 急救! 急救!
你的细表就做为一个数据包,带到客户端,然后操作
这个怎么算呀?
但是看你从表的记录好象有问题,应该是主表的MID不变,从表的DID变才对啊,因为主表一条记录可以有N条从表的记录
为主从表建立关系(触发同时修改主键)
然后半夜三更的将 YYMMDD+GuID 整理成 YYMMDD+流水号
当然不整理也行SQL Server2000后台生成GuID的程序为:newid(), Cast(newid() as varchar(50))
前台的:
Function GetGuID: String;
var guid:TGUID;
YY,MM,DD: Word;
begin
DecodeDate(Date,YY,MM,DD);
CoCreateGUID(guid);
Result := Copy(IntToStr(YY),3,2)+InsZero(IntToStr(MM),'0',2)+
InsZero(IntToStr(DD),'0',2)+GuidToString(guid);
end;