在数据库中先写一个简单的存储过程
CREATE Procedure [dbo].[sp1]
(
@Gid int
)
AS
delete from t_Test where Gid=@Gid
select * from t_Test --存储过程中加上这个语句是为了让前段dw在删除后能够在dw中显示删除后的结果集,如果不加这句话 --dw会报错select error错误。
GO
后台代码如下:
由于存储过程接收一个参数来对指定的行进行删除因此在界面上放了一个sle接收删除的行号,当然实际应用中可灵活实现
string rc, sql
int i
dw_1.settransobject( sqlca )
i = integer(sle_1.text)
sql = "datawindow.table.procedure = '1 execute dbo.sp1;1 @Gid = " + string(i) + "'"
//"1 execute dbo.sp1;1 @Gid = :Gid" 这是存储过程sp1的调用语法,在上面的语句中我们把:Gid这个变量变成了用户输入
//的动态的行号。
// 1 execute dbo.p_Test_Getdata;1 @Gid = :Gid 这是另一个存储过程的调用语法,从两个调用语法来看除了存储过程名和参
//数列表意外,其余部分为固定格式,至于为什么有两个1,未进行深入研究。
dw_1.modify(sql) //存储过程挂起dw_1.retrieve(i) //执行存储过程
一个简单的存储过程调用就成功了。增改查同理。