2014-09-22 142 views
0

我正在开发一个项目,其中一个部分处理付款,如果付款成功,它会在数据库中设置一个标志。现在,我想要实现的是,我必须每秒钟或每两秒持续查询数据库中的特定标志30秒。如果30秒后我没有看到数据库中的标志,我会告诉用户付款不成功。我如何实现这个有时限的查询?我的意思是我如何继续运行一个特定的查询30秒?SQL Server中的时间限制查询

谢谢。

+1

我想你应该从你的应用程序方面,而不是从SQL Server端 – Sam 2014-09-22 04:09:05

+1

数据库本身不能帮助你在这里你需要例如PHP一些代码或任何语言是您正在使用来实现它做到这一点创建你的店铺。只需在您的预设语言中设置一个while循环,超时时间为1秒,并且更好的是2秒钟,并向您的数据库发出另一个查询,并总计30秒,以“中断”退出循环,并通知用户付款失败。 ? – Steini 2014-09-22 04:10:18

回答

0
DECLARE @CurrentTime datetime 
SET @CurrentTime=GETDATE() 
WHILE DATEDIFF(ss,@CurrentTime,GETDATE())<31 
BEGIN 
<Your Code Here> 
END 

您可能还需要使用WAITFOR DELAY在你的代码来执行每1或2秒

0

,你可以在一个循环中检查状态更改使用waitfordelay。

declare @flag int = 0 

    select @flag = flag from MyTable with (nolock) 
    declare @i int =0 

    while @flag <> 0 and @i <30 
    begin 

     WAITFOR DELAY '00:00:01' 
     select @flag = flag from MyTable with (nolock) 
     set @i = @i +1 
    end 
+0

请在发布的答案中添加一些说明,这将有助于他人快速理解。 – 2014-09-22 05:12:08