当前位置:编程学习 > Delphi >>

delphi7新人求教如何实现下面功能:如果我按提交后数据库中的数据会按框中填的数据进行更新(加上或减去)

我想要的是下面的效果:如果我按提交后数据库中的数据会按框中填的数据进行更新(加上或减去)。如设备名:音箱,数量:5,存/取:存,而本来我数据库中表的数据中音箱本来就有3台,提交后让数据库中音箱台数变为8台。 那个提交按钮应该如何写代码? 新人诚心求教。。。
答案:你的这种想法,我给起了一个名称,叫做“存货表实时更新法”。也就是说,仓库内的物品,不管是入库还是出库之后,它的实际数量总是与存货表中的数量是相符的。
采用这种实时更新法,数据库中必须具备三张表,1,入库表;2,出库表;3,存货表。
当用户在入库数据操作界面中,输入进货数据信息,将进货信息保存到入库表中的同时,另外用一个函数去检查存货表,如果存货表中已经有一条与当前进货信息相同(名称,规格,价格)的记录,那么就在原有库存数量的基础上加上当前进货数量,如果没有与之相同的记录,则新增一条存货记录,记录的各元素与进货信息完全相同。
当用户在出库数据操作界面中,输入出货数据信息,将出货信息保存到出库表中的同时,也用一个函数去检查存货表,如果存货表中已经有与当前进货信息相同(名称,规格,价格)的记录,那么就在原有库存数量的基础上减去当前出货数量。
其他:update table set 数量=数量+XX where 设备名='yy'
你那个存取有什么用。。数量为负就是取,为正就是存咯。或者存取你弄个下拉菜单给人选,否则谁知道该填什么 ,如果数量只能填正数的话:
var sql1:string;
   sql:string;
if dbedit4='存' then 
sql1:= 数量
else
sql1:='-'+xx;
sql:='update table set 数量='+sql1+' where 设备名='+yy;
with query do
begin
close;
sql.text:=sql;
open; 
end;
xx是你输入的数量,yy是你输入的设备名 
大致写了下代码,但是直接复制肯定是不能编译的 
还有,估计你从界面获取的数量值,得转换下类型,用strtoint() 数据库是sql吧,如果是mssql的话,就在提交后面写更新语句,后台执行SQL,SQL语句用update来写,更新产品数量。 好久没写了,delphi已经用的越来越少了,还是放弃吧,如果只是学校要求的话,就稍微看看
注意:dbedit是能够绑定数据字段的,你现在只是一个条件输入,所以,不要在dbedit3和dbedit4上绑定任何字段,否则修改的时候就直接把库里面的内容都改掉了,建议换成其他的普通edit类型就行乐。
var sql:string;
if dbedit4.text = '存'  then 
sql:= dbedit3.text
else
sql:=' - '+ dbedit3.text ;
sql:='update table set  数量 = 数量 - ' + sql1 + ' where 设备名='+yy;
with query do
begin
close;
sql.text:=sql;
open; 
end;

数据库中的数量字段必须是数字型,否则运行报错。

上一个:在Delphi 怎么能让多个指向同一张表查询的DataSet实现数据操作同步?
下一个:大侠!delphi里怎样打印bmp文件,bmp是现成的,固定的。

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,