我一直做进销存,我认为这样的问题很正常,可能与数据库及死机有关,建议:1.采用仓库进出明细表记录每一笔出入和结存,这样出了问题可以查.
表结构如下: ID 时间 商品ID 仓库ID 出入库单据类型 发生数量 单价 结存数量
1 ... 001 1 01 100 9.3 120
2 ... 001 1 02 21 8.6 141
3 ... 002 1 09 -10 9.3 131 在正常情况下结存数量即为当前库存量,否则为错,如果有任何一条不符合以上三条记录的数量关系,则错.
2.对所有有关库存修改的操作采用事务处理,这样可防止死机和掉电造成的数据混乱.
表结构如下: ID 时间 商品ID 仓库ID 出入库单据类型 发生数量 单价 结存数量
1 ... 001 1 01 100 9.3 120
2 ... 001 1 02 21 8.6 141
3 ... 002 1 09 -10 9.3 131 在正常情况下结存数量即为当前库存量,否则为错,如果有任何一条不符合以上三条记录的数量关系,则错.
2.对所有有关库存修改的操作采用事务处理,这样可防止死机和掉电造成的数据混乱.
解决方案 »
- dbgrideh内容导出错误
- cxgridTableView关于ButtonEdit的问题
- 我用delphi写个监控程序,用MyKm4Process.dll隐藏进程,调试时进程可以隐藏,但是加入自启动,重启机器后进程仍然在
- 有没有能把dbgrid的内容saveas另存出来的办法
- 如何在jpg图像中建立坐标!!急!!
- 关于文本文件读取的问题?
- 求一个关于把字串等分的方法!
- Object Pascal 参考手册已发给[email protected]和[email protected],请帮忙上传,谢谢!
- 请问delphi中延时函数是什么?
- 学dephi需要多长时间?
- delphi中TClientSocket的小问题
- danhint和rzlabel属于哪两组控件包中的控件
表结构如下: ID 时间 商品ID 仓库ID 出入库单据类型 发生数量 单价 结存数量
1 ... 001 1 01 100 9.3 120
2 ... 001 1 02 21 8.6 141
3 ... 002 1 09 -10 9.3 131 在正常情况下某仓某商品最后一条的结存数量即为当前库存量,否则为错,如果有任何一条不符合以上三条记录的数量关系,则错.
2.对所有有关库存修改的操作采用事务处理,这样可防止死机和掉电造成的数据混乱.
+ado2.fieldbyname('number').value+
' where ypbh='''+ado2.fieldbyname('ypbh').value+'''');
建议把ado2.fieldbyname('xxx').value改为ado2.fieldbyname('xxx').Asstring.在SQL语句中我们要的是String型的。而value就有可能不是。