L
lccc
Unregistered / Unconfirmed
GUEST, unregistred user!
对不起!问题比较长!
本人用FoxPro6.0编写了一个仓库管理程序,现用Delphi 5.0和
MSSQL Server 7.0改为C/S版本。
一、表结构:程序中有4个表分别如下:
1、 客户表Customer:CustID,CustName,Address,
Condition,Remark等;CustID为主索引。
2、 商品表Ware:CustID,WareID,WareName,WareUnit(单位),
WarePack(包装),Stock(库存)等,CustID+WareID为主索引,
CustID+Wa保存reName为唯一索引。(注:不能用WareID作主索引,因为
如果不同的客户可以有相同的商品,则在库存中无法区分各自有
多少库存)。
3、 入库主表EnterDepot:EnterID,CustID,CustName(查找),
EnterDate,EnterTime,EnterFare(入库费用),等
EnterID为主索引。
4、入库子表EnterDepotDetail:EnterID,WareID,Warename(查找),
WareUnit(查找),WarePack(查找),EnterNum等。
EnterID+WareID为唯一索引。
二、程序要做到:
A、增加一条入库记录后,Ware表中相应客户的相应商品的库存增加、
修改、减少。
B、如果修改、删除后,库存将出现负数,则不允许。如:入100,出了
50,库存余50,如果将入100改为入49则不行,删除也不行。
三、我的思路:
A、增加记录:选定客户-----》过滤商品为指定客户---》输入----》
保存(1、先保存EnterDepot,2、再保存EnterDepotDetail,3、增加
Ware表的相应商品的库存,4、保存Ware表)---》失败后回滚。
B、修改记录:将对应记录的商品库存减少----》修改----》
保存(1、先保存EnterDepot,2、再保存EnterDepotDetail,3、增加
Ware表的相应商品的库存,4、保存Ware表)---》失败后回滚。
C、删除记录:将Ente10:27 2000.09.26rDepotDetail相应商品的库存减少--》删除
EnterDepotDetail----》删除EnterDepot--------》保存
(1、先保存EnterDepot,2、再保存EnterDepotDetail)----》
Ware表的相应商品的库存,3、保存Ware表)---》失败后回滚。
四、现在的问题:
A、如果用EnterDepot.Next或EnterDepot.Prior时,如果EnterDepot的
Cust字段值改变,EnterDepotDetail中WareName等查找字段不显示。
B、速度非常慢:特别是在表格中增加一行时,更是如此。是程序的原因
还是SQL Server的原因,而在FoxPro中却非常快。
C、在出库时的方法和问题相同。
本人今年7月份才开始学习Delphi 和SQL Server,加入大富翁不到三天,
200分全送。望各位高手指教。
lccc, lccc@ppp.wzptt.zj.cn
本人用FoxPro6.0编写了一个仓库管理程序,现用Delphi 5.0和
MSSQL Server 7.0改为C/S版本。
一、表结构:程序中有4个表分别如下:
1、 客户表Customer:CustID,CustName,Address,
Condition,Remark等;CustID为主索引。
2、 商品表Ware:CustID,WareID,WareName,WareUnit(单位),
WarePack(包装),Stock(库存)等,CustID+WareID为主索引,
CustID+Wa保存reName为唯一索引。(注:不能用WareID作主索引,因为
如果不同的客户可以有相同的商品,则在库存中无法区分各自有
多少库存)。
3、 入库主表EnterDepot:EnterID,CustID,CustName(查找),
EnterDate,EnterTime,EnterFare(入库费用),等
EnterID为主索引。
4、入库子表EnterDepotDetail:EnterID,WareID,Warename(查找),
WareUnit(查找),WarePack(查找),EnterNum等。
EnterID+WareID为唯一索引。
二、程序要做到:
A、增加一条入库记录后,Ware表中相应客户的相应商品的库存增加、
修改、减少。
B、如果修改、删除后,库存将出现负数,则不允许。如:入100,出了
50,库存余50,如果将入100改为入49则不行,删除也不行。
三、我的思路:
A、增加记录:选定客户-----》过滤商品为指定客户---》输入----》
保存(1、先保存EnterDepot,2、再保存EnterDepotDetail,3、增加
Ware表的相应商品的库存,4、保存Ware表)---》失败后回滚。
B、修改记录:将对应记录的商品库存减少----》修改----》
保存(1、先保存EnterDepot,2、再保存EnterDepotDetail,3、增加
Ware表的相应商品的库存,4、保存Ware表)---》失败后回滚。
C、删除记录:将Ente10:27 2000.09.26rDepotDetail相应商品的库存减少--》删除
EnterDepotDetail----》删除EnterDepot--------》保存
(1、先保存EnterDepot,2、再保存EnterDepotDetail)----》
Ware表的相应商品的库存,3、保存Ware表)---》失败后回滚。
四、现在的问题:
A、如果用EnterDepot.Next或EnterDepot.Prior时,如果EnterDepot的
Cust字段值改变,EnterDepotDetail中WareName等查找字段不显示。
B、速度非常慢:特别是在表格中增加一行时,更是如此。是程序的原因
还是SQL Server的原因,而在FoxPro中却非常快。
C、在出库时的方法和问题相同。
本人今年7月份才开始学习Delphi 和SQL Server,加入大富翁不到三天,
200分全送。望各位高手指教。
lccc, lccc@ppp.wzptt.zj.cn