概述:
在网上找了一个利用SQL全局临时表防止登录问题,改好了存储过程和前台代码程序。经调试存储过程和前台程序都正确。但结果输出值在查析分析器里边正确,在网站前台页面程序调用时输出值始终为:0,达不到控制用户登录的目的。
SQL存储过程如下:
CREATE procedure sp_checklogin
@userid varchar(6) , -- 操作帐号
@flag int out -- 输出参数 0:没有登录 1:已经登录
as
declare @sql nvarchar(100)
IF object_id('tempdb.dbo.##'+@userid) is null
begin
set @sql='create table ##'+@userid+'( userid varchar(6))'
exec(@sql);
set @flag = 0
end
Else
set @flag = 1
GO
查询分析器里边调用:
declare @userid varchar(6)
declare @Flag INT
exec sp_checklogin 'No001',@Flag output
select @Flag output
第一次执行结果:0
且tempdb下面出现了创建了全局临时表##No001,正确无误。
第二次执行结果:1
且tempdb下面全局临时表##No001还在,没有被销毁,也是正确的就是我想要的结果。
前台执行:
第一次执行结果:
执行本程序后,存储过程返回值Flag:0
提示:成功登录!(该帐户今天第一次登录)
第二次执行结果:
执行本程序后,存储过程返回值Flag:0
提示:成功登录!(该帐户今天第一次登录)