Office中国论坛/Access中国论坛

标题: 对于喜欢链接SQL的同学,调用储存过程更简单。 [打印本页]

作者: memphis240    时间: 2015-4-16 21:52
标题: 对于喜欢链接SQL的同学,调用储存过程更简单。
当然,书上说用ADO,ADP,总之整得有点麻烦,一点也不人性化,老汉我偏就只用链接表形式,把存储过程完美的执行起来。
思路:这个自然是要向SQL服务器传递存储过程的参数,自然是直接写表最简单。SQL有个日毛的东西叫触发器,真是好家伙啊。
实战下,建立个表叫GC,字段ID,名称,单位,年月。名称-储存过程名,单位-储存过程参数1,年月-存储过程参数2。
一、编写储存过程:SJGX
CREATE PROCEDURE [dbo].[SJGX]  
@Dw varchar(12),@dd smalldatetime
AS
begin
储存过程内容
end

二、在表GC上编写触发器:ZXGC
CREATE TRIGGER [dbo].[ZXGC]
on [dbo].[GC] for insert
As
BEGIN
declare @MC nvarchar(20)
declare @CS  nvarchar(20)
declare @NY smalldatetime
set @MC=(select 名称 from Inserted)
set @CS=(select 单位 from Inserted)
set @NY=(select 年月 from Inserted)
exec @MC @CS,@NY   ---执行储存过程
delete from dbo.GC;
END


三、窗口建立代码
Private Sub gc_Click()
Dim Sql As String
Sql = "insert into gc(名称,单位,年月) values ('SJGX','月亮总部','2015-2-3')"
DoCmd.SetWarnings False
DoCmd.RunSQL Sql, -1
DoCmd.SetWarnings True
End Sub

效果:刚刚的。只要向表GC插入数据。存储过程马上执行哦。



作者: laimf    时间: 2015-4-17 09:28
思路巧妙,很值得学习。但实用范围有一定的局限性。
作者: 风中漫步    时间: 2015-4-17 17:13
谢谢分享
作者: 魔手    时间: 2015-4-22 13:43
不懂,先收着再说,呵呵




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3