Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

142 lines
5.0 KiB

/*
Adds a crash instance to CrashDb
Returns isBucket, igBucket if successfull
*/
CREATE PROCEDURE sp_AddCrashInstance2 (
@ip_retriageBucket bit,
@ip_BucketId varchar(100),
@ip_Path varchar(256),
@ip_FollowUp varchar(50),
@ip_BuildNo int,
@ip_Source int,
@ip_CpuId bigint,
@ip_OverClocked bit,
@ip_IncidentId bigint,
@ip_gBucketId varchar(100),
@ip_DriverName varchar (100),
@ip_Type int
)
AS
BEGIN
DECLARE @i_sBucket int
DECLARE @i_gBucket int
DECLARE @i_Followup int
DECLARE @i_OldFollowup int
DECLARE @i_DriverName int
DECLARE @i_OldDriverName int
SET NOCOUNT ON
-- Find the specific bucket
SELECT @i_sBucket = iBucket,
@i_OldFollowup = iFollowup,
@i_OldDriverName = iDriverName
FROM BucketToInt WHERE BucketId = @ip_BucketId
-- If the specifc bucket does not exist, or we want to update the
-- fields
IF ( @i_sBucket IS NULL OR @ip_retriageBucket = 1)
BEGIN
SELECT @i_Followup = iFollowup FROM FollowupIds
WHERE Followup = @ip_FollowUp
--get (or add) the followup information.
-- IF NOT EXISTS (SELECT * FROM FollowupIds
-- WHERE Followup = @ip_FollowUp)
if (@i_Followup is null)
BEGIN
INSERT INTO FollowupIds VALUES (@ip_FollowUp, NULL)
SELECT @i_Followup = @@IDENTITY
END
-- ELSE
-- BEGIN
-- SELECT @i_Followup = iFollowup FROM FollowupIds
-- WHERE Followup = @ip_FollowUp
-- END
--get (or add) the driver name.
SELECT @i_DriverName = iDriverName FROM DrNames
WHERE DriverName = @ip_DriverName
if (@i_DriverName is null)
-- IF NOT EXISTS (SELECT * FROM DrNames
-- WHERE DriverName = @ip_DriverName)
BEGIN
INSERT INTO DrNames (DriverName)
VALUES (@ip_DriverName)
SELECT @i_DriverName = @@IDENTITY
END
-- ELSE
-- BEGIN
-- SELECT @i_DriverName = iDriverName FROM DrNames
-- WHERE DriverName = @ip_DriverName
-- END
END
IF ( @i_sBucket IS NULL)
BEGIN
INSERT INTO BucketToInt (BucketId, iFollowup, iDriverName, Platform) -- added platfrom param sbeer 02/20/02
VALUES (@ip_BucketId, @i_Followup, @i_DriverName, @ip_Type)
SELECT @i_sBucket = @@IDENTITY
END
ELSE
BEGIN
-- Bucket exists in bucket table. Update it if necessary
IF @ip_RetriageBucket = 1
BEGIN
IF ( (@i_OldFollowup != @i_Followup) OR
(@i_OldDriverName != @i_DriverName) )
BEGIN
UPDATE BucketToInt
SET iFollowup = @i_Followup, iDriverName = @i_DriverName, Platform = @ip_Type -- added platfrom param sbeer 02/20/02
WHERE iBucket = @i_sBucket
END
END
END
-- Add generic bucket
SELECT @i_gBucket = iBucket FROM BucketToInt
WHERE BucketId = @ip_gBucketId
IF (@i_gBucket IS NULL)
BEGIN
INSERT BucketToInt ( BucketID, iBucket, iFollowUp,Platform) VALUES (@ip_gBucketId,0,0,@ip_Type) --added explicit column names solson 02/14/02
SELECT @i_gBucket = @@IDENTITY
END
-- Add the Crash Instance to the crash instance table and the mapping
-- table
IF NOT EXISTS (SELECT IncidentId FROM CrashInstances
WHERE IncidentId = @ip_IncidentId)
BEGIN
INSERT INTO CrashInstances
VALUES ( @ip_Path,
@ip_BuildNo,
@ip_CpuId,
@ip_IncidentId,
@i_sBucket,
@i_gBucket,
GetDate(),
@ip_Source)
END
ELSE
BEGIN
IF (@ip_retriageBucket = 1)
BEGIN
UPDATE CrashInstances
SET sBucket = @i_sBucket, gBucket = @i_gBucket
WHERE IncidentId = @ip_IncidentId
END
END
SET NOCOUNT OFF
SELECT @i_sBucket AS sBucket, @i_gBucket AS gBucket
END
GO