大家好!
我在做一个两层C/S结构(Delhpi7.0+Sql 2000 ADO连接)的数据库应用程序.其中我用到主从表结构来输入BOM主表与BOM子表(物料信息).我是用TADOQUERY控件实现.
adoqyMaster.sql Select billid,billDate,CustomerID(外键--表
Customer),Customer.CustomerName,ProductionCode(外键--表
Production),ProductionName,Qty...
adoqyDetail.Sql Select billID(外键--主表),ItemNo,MaterialCode(外键--
表Material),Material.Name,Qty...
adoqyDetail.DataSource 我已设为主表的 dsMaster 数据源.
如上我按正常设置好后,其它都正常.
问题出在我在新增主表后,保存时POST,不能成功(可后来发现值却又保存到了SQL DB里),错误提示: 不能将CustomerID空值保存到Customer表,其它我在新增BOM已输了且是已存在的CustomerID;即问题的关键点是,如上主表的SQL语句,在保存,却先要将Customer.CustomerName值保存到Customer表,我是通过SQL跟踪看到这条语句的.
同样新增明细表也是不成功,(可后来发现明细的值却又保存到了SQL DB里) 提示不能将NULL值保存到Material 表.
因为如上SQL与外键表的关联,删除的时候也出错,提示不能删除 Customer表...... 如上,请问老鸟们我错在哪里?还是DELPHI的功能不支持这样做?以上BOM案例我该怎样去达成?
谢谢!
我在做一个两层C/S结构(Delhpi7.0+Sql 2000 ADO连接)的数据库应用程序.其中我用到主从表结构来输入BOM主表与BOM子表(物料信息).我是用TADOQUERY控件实现.
adoqyMaster.sql Select billid,billDate,CustomerID(外键--表
Customer),Customer.CustomerName,ProductionCode(外键--表
Production),ProductionName,Qty...
adoqyDetail.Sql Select billID(外键--主表),ItemNo,MaterialCode(外键--
表Material),Material.Name,Qty...
adoqyDetail.DataSource 我已设为主表的 dsMaster 数据源.
如上我按正常设置好后,其它都正常.
问题出在我在新增主表后,保存时POST,不能成功(可后来发现值却又保存到了SQL DB里),错误提示: 不能将CustomerID空值保存到Customer表,其它我在新增BOM已输了且是已存在的CustomerID;即问题的关键点是,如上主表的SQL语句,在保存,却先要将Customer.CustomerName值保存到Customer表,我是通过SQL跟踪看到这条语句的.
同样新增明细表也是不成功,(可后来发现明细的值却又保存到了SQL DB里) 提示不能将NULL值保存到Material 表.
因为如上SQL与外键表的关联,删除的时候也出错,提示不能删除 Customer表...... 如上,请问老鸟们我错在哪里?还是DELPHI的功能不支持这样做?以上BOM案例我该怎样去达成?
谢谢!
解决方案 »
- ADOQuery控件使用
- 这个困扰我了三天的问题(关于UDP接收结构体数据包)
- 怎样控制FastReport中通过CrossObject产生的报表的各字段的属性(如宽度,折行等)?
- 为什么3ds模型加载不上了?
- 新手问题:我要输入时间是用DateTimePicker控件吗?我只输时间不输日期应该怎么设置它的属性?
- 在财务中的"立帐" / "冲帐" 如何翻译成英文 ?
- 谁有使用WH_CALLWNDPROC HOOK的例子
- 送分了,请问哪里有ADO2。1或以上版本下载?
- 如何获取一个ACCESS数据库中所有表的名称,并检查某一表名是否已经存在?
- ****Delphi And C++Builder大讨论****
- 难题:焦点在 EDIT1 中时,如何侦测用户按下了 TAB 键?
- 关于菜单消息的拦截?
真的只能如smiler007(笑一笑)这样吗?
还有谁用更好的办法呀?????!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 我加了这条语句 qyMaster.Properties['Unique Table'].Value:='Bom_Mster'; 发现还是时好时坏,不稳定.
急盼答案!!!!!!!!!!!!!!!!!!!!!
1. qyMasterAfterOpen(..........................
qyMaster.Properties['Unique Table'].Value:='Bom_Mster'; 2.输入界面非 Bom_Master 表的字段请勿用 TDBEDIT控件,而用 TDBTEXT控件. 3.TDBTEXT 控件不直接通过DataSource 关联,而必须在 qyMasterScroll事件中赋值.