网站地图| 免费获取|
毕业论文网
  • 网站首页|
  • 论文范文|
  • 论文降重|
  • 职称论文发表|
  • 合作期刊|
  • 论文下载|
  • 计算机论文|
  • 外文翻译|
  • 免费论文|
  • 论文资料|
  • 论文开题报告
搜索

当前位置:毕业论文网 -> 免费论文 -> 计算机论文 -> 中小型超市管理系统规划(三)
计算机论文资料| ASP设计| Delphi| VB设计| JSP设计| ASP.NET设计| VB.NET| java设计| VC| pb| VS| dreamweaver| c#.net| vf| VC++| 计算机论文范文| 论文下载| 自动化论文

中小型超市管理系统规划(三)

最新活动:微信集50个赞就可获取任意一篇钻石会员文档。详情见微信集赞换文档
中小型超市管理系统规划(三)
事务控制是一种能够把数据库的一组修改作为整体提交给数据库以保证数据的一致性和完整性的机制。如果其中有一个操作失败,则所有操作失败。

2.5 存储过程的使用
在程序设计中,系统主要的复杂的操作我都都是通过存储过程来实现的。
例如:使用库存调整操作时,我们用P_ADJUST_STORE来完成。
procedure Tadjust_store.okbuttonClick(Sender: TObject);
begin
if not damo.Database1.InTransaction then
          damo.Database1.StartTransaction; 开始一个事务
  with   P_ADJUST_STORE  do  //P_ADJUST_STORE为存储过程
           begin
             Params[1].AsInteger:=strtoint(edit_id.Text);
             Params[2].AsFloat:=strtofloat(edit_adjust.Text);
             Params[3].AsInteger:= table1.Fields[0].AsInteger ;
Params[4].AsInteger:= person_id ;// person_id为全局变量人员ID
 Prepare;
             execproc;
           end;
         try
             damo.Database1.Commit; 事务提交
         except
             begin
                damo.Database1.Rollback; 事务回滚
                showmessage('数据提交失败! ');
              end;
          end;   
以下是几种典型存储过程。
日处理存储过程:
CREATE  PROCEDURE  P_DIALY_DO
      @dialy_date char(12),
 @person_id smallint
 AS
       DECLARE  @goods_id int
       DECLARE  @quantity float
       DECLARE  @amount money
       DECLARE temp_cursor CURSOR FOR
SELECT A.GOODS_ID,SUM(A.QUANTITY),SUM(A.QUANTITY*B.COST_PRICE) 
FROM  POS_SALE  A, GOODS_INFO B
WHERE    convert(char(12),WORK_DATE,102)=@dialy_date 
AND  A.GOODS_ID=B.GOODS_ID  GROUP BY  A.GOODS_ID  
 OPEN  temp_cursor
 FETCH NEXT FROM temp_cursor INTO @goods_id, @quantity, @amount
 WHILE (@@FETCH_STATUS=0)
   BEGIN
     if EXISTS(SELECT *  FROM STORE_DETAIL  WHERE GOODS_ID = @goods_id)
         BEGIN  
UPDATE  STORE_DETAIL
SET  QUANTITY=QUANTITY-@quantity  , AMOUNT=AMOUNT-@amount
WHERE GOODS_ID = @goods_id
     END
    FETCH NEXT FROM temp_cursor INTO @goods_id,@quantity,@amount
   END
  INSERT DIALY_DAN
         VALUES( @dialy_date,'已做',@person_id)
 CLOSE temp_cursor
 DEALLOCATE temp_cursor

查询每日商品销售汇总的存储过程:
CREATE  PROCEDURE  P_DIALY_SALE
 AS
CREATE TABLE  #temp_table
(
amount  float,
work_date char(12),
sale_cost float,
gain  float
)
INSERT INTO  #temp_table
SELECT           
       a.amount,convert(char(12),a.work_date,102)  AS work_date,     
       (c.cost_price*a.quantity)  AS  sale_cost,
       (a.amount-c.cost_price*a.quantity)  AS  gain
       FROM  pos_sale a,small_type b,goods_info c
       WHERE a.goods_id=c.goods_id
       AND  c.small_type=b.small_type_id
SELECT  work_date,     sum(amount) AS sum_amount  ,   sum(sale_cost) AS sum_sale_cost ,  sum( gain )  AS  sum_gain
FROM  #temp_table 
        GROUP BY work_date, ORDER BY work_date

商品审核入库存储过程
CREATE  PROCEDURE  P_GOODS_ENTER
 @enter_dan_id int
 AS
  DECLARE  @goods_id int
  DECLARE @quantity float
  DECLARE @amount money
 DECLARE temp_cursor CURSOR FOR
 SELECT GOODS_ID,QUANTITY,AMOUNT FROM ENTER_GOODS_DETAIL
 WHERE ENTER_DAN_ID=@enter_dan_id
 OPEN temp_cursor
 FETCH NEXT FROM temp_cursor INTO @goods_id,@quantity,@amount
 WHILE (@@FETCH_STATUS=0)
   BEGIN
     if EXISTS(SELECT *  FROM STORE_DETAIL  WHERE GOODS_ID = @goods_id)
         BEGIN  
              UPDATE STORE_DETAIL
SET QUANTITY=QUANTITY+@quantity  , 
AMOUNT=AMOUNT+@amount
              WHERE GOODS_ID = @goods_id
          END
     ELSE
         BEGIN
            INSERT STORE_DETAIL 
            VALUES(@goods_id,@quantity,@amount,getdate())
         END
      FETCH NEXT FROM temp_cursor INTO @goods_id,@quantity,@amount
   END
 CLOSE temp_cursor
 DEALLOCATE temp_cursor

查询部门销售汇总的存储过程
CREATE  PROCEDURE  P_SEARCH_DEP_SALE
 AS
CREATE TABLE #temp_table
(
large_type_id int,
dep_name char(10),
quantity float,
amount  float,
work_date char(12),
sale_cost float,
gain  float
)
INSERT INTO  #temp_table
SELECT     
       b.large_type_id,b.name  AS  dep_name,
       a.quantity,a.amount,convert(char(12),a.work_date,102)  AS work_date,     
       (c.cost_price*a.quantity)  AS  sale_cost,
       (a.amount-c.cost_price*a.quantity)  AS  gain
       FORM pos_sale a,large_type b,goods_info c
       WHERE a.goods_id=c.goods_id
       AND  c.large_type=b.large_type_id
SELECT work_date, large_type_id ,dep_name,
          sum( quantity)  AS sum_quantity , sum(amount) AS sum_amount  ,   sum(sale_cost)  AS  sum_sale_cost ,  sum( gain )  AS  sum_gain
FROM  #temp_table 
        GROUP BY work_date, large_type_id ,dep_name ORDER BY work_date

查询商品分类汇总的存储过程


首页 上一页 1 2 3 4 下一页 尾页 3/4/4

中小型超市管理系统规划(三)由毕业论文网(www.huoyuandh.com)会员上传。
原创论文资料流程 相关论文
上一篇:高校教师科研成果管理系统需求规.. 下一篇:质量信息管理系统在动力电池企业..
推荐论文 本专业最新论文
Tags:中小型 超市 管理系统 规划 2022-06-13 09:14:16【返回顶部】
精彩推荐
发表论文

联系方式 | 论文说明 | 网站地图 | 免费获取 | 钻石会员 | 硕士论文资料


毕业论文网提供论文范文,论文代发,原创论文资料

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2020 毕业论文网 版权所有