以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [分享]存储过程使用方法详记  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=60438)

--  作者:jnletao
--  发布时间:2014/11/25 8:46:00
--  [分享]存储过程使用方法详记
本人对存储过程比较陌生,这几天在论坛大能的帖子里整理学习了下。以下内容供分享及交流,不足之处还请指证
1.存储过程写法(例)
USE [PClothData]
GO
/****** 对象: StoredProcedure [dbo].[GroupStorePro] 脚本日期: 11/25/2014 08:37:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GroupStorePro]

@FieldStr nvarchar(255) = \'款号,颜色,尺码\',
@FilterStr nvarchar(1000) = \'1=1\',
@HavingStr nvarchar(255) = \'\',
@OrderStr nvarchar(255) = \'款号,颜色,尺码\'
AS

Declare @sql NVarchar(4000)
Set @sql=\'Select \'+@FieldStr+\', Sum(数量) As [库存数量],Sum(CASE WHEN 正负 = 1 THEN 数量 ELSE 0 END) As [入库数量],Sum(CASE WHEN 正负 = -1 THEN 数量 ELSE 0 END)*-1 As [出库数量],round((CASE WHEN Sum(CASE WHEN 正负 = 1 THEN 数量 ELSE 0 END) = 0 then 0 else (Sum(CASE WHEN 正负 = -1 THEN 数量 ELSE 0 END)*-1)/(Sum(CASE WHEN 正负 = 1 THEN 数量 ELSE 0 END)*1.0) end),2) As [出库率] From 单据详情 Inner JOIN 单据列表 ON 单据列表.[单据编号] = 单据详情.[单据编号] Where \'+@FilterStr+\' Group By \'+@FieldStr+\' \'+@HavingStr+\' Order by \'+@OrderStr+\'\'
Exec sp_executesql @sql

2.调用方法(传统)
Dim cmd As New SQLCommand
cmd.Connection Name = "ClothData"
cmd.CommandText = "Exec GroupStorePro,\'参数1\',\'参数2\',\'参数3\',\'参数4\'"
库存查询表 = cmd.ExecuteReader
Tables("库存查询_TablePageBill").DataSource = 库存查询表
库存查询表为全局变量datatable

3.调用方法(新发现)
Tables("库存查询_TablePageBill").Fill("Exec GroupStorePro,\'参数1\',\'参数2\',\'参数3\',\'参数4\'","PClothData",True)
4.存储过程中select及where 用到的文本字段建非聚集索引,可成倍提高查询速度。

---------------------------------------------------
堪误 :  "Exec GroupStorePro,\'参数1\',\'参数2\',\'参数3\',\'参数4\'"   写法错误,红色逗号处应为空格,也就是说 过程名与 参数要用空格分开
正确写法"Exec GroupStorePro   \'参数1\',\'参数2\',\'参数3\',\'参数4\'"  


[此贴子已经被作者于2014-11-26 13:10:34编辑过]

--  作者:Bin
--  发布时间:2014/11/25 8:57:00
--  
谢谢分享
--  作者:逛逛
--  发布时间:2014/11/25 9:00:00
--  

不错,顶


--  作者:wei0769
--  发布时间:2014/11/25 23:28:00
--  
不错,暂时用不上,要开发大系统才用得上
--  作者:zyqzyy
--  发布时间:2014/11/26 13:03:00
--  

--  作者:黄训良
--  发布时间:2015/4/28 0:58:00
--  
顶,正要用。
--  作者:lihe60
--  发布时间:2015/4/28 7:53:00
--  
楼主的帖子有人看懂如何用了吗?
--  作者:haotinghua
--  发布时间:2020/4/17 13:45:00
--  
哈哈 正需要 谢谢