本帖最后由 gqmao 于 2016-5-24 08:40 编辑
取数本也可以用存储过程,传入用户名后,根据用户权限取出不同的数据,存储过程完成这项工作,相当出色。本专题按下不表。
且看写入过程:
ALTER proc [dbo].[fr_w](@usr varchar(50),@id int,@gs varchar(50),@dz varchar(50),@dh varchar(50))
---存储过程参数(用户名,ID,公司名,地址,电话)
as
set nocount on
declare @zt int --设置状态变量
select @zt=0 --初始为0
if ISNULL(@id,0)=0 --如传入的ID为空或0,则视为新增数据,执行插入记录动作
begin
select @id=ISNULL(max(id),0)+1 from fr_gs --ID取最大ID+1
insert into fr_gs(id,gs,dz,dh,usr,tim) select @id,@gs,@dz,@dh,@usr,GETDATE() where len(isnull(@gs,''))>0
---传入的公司名不能为空,这个可在这里作为条件,是否写入,在FR里也是可以设置限制条件的
if @@ROWCOUNT>0 --如果新增成功
select @zt=1 --设状态值为1
end
else
begin
--下面是修改数据的语句,可以根据接收到的参数值做各种条件的操作
update fr_gs set gs=@gs,dz=@dz,dh=@dh,usr=@usr,tim=GETDATE()
where id=@id and len(isnull(@gs,''))>0 and (
ISNULL(gs,'')<>ISNULL(@gs,'')
or ISNULL(dz,'')<>ISNULL(@dz,'')
or ISNULL(dh,'')<>ISNULL(@dh,'')
)
if @@ROWCOUNT>0
select @zt=2 --修改成功,设为2
end
select @zt --返回状态值,(这里返回的可以根据需要返回数据,我这里只是简单返回不同值给FR判断用
|