USE [GPSTracker]
GO
/****** Object: Table [dbo].[gpslocations] Script Date: 04/19/2008 09:33:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[gpslocations](
[GPSLocationID] [int] IDENTITY(1,1) NOT NULL,
[LastUpdate] [datetime] NOT NULL CONSTRAINT [DF_gpslocations_LastUpdate] DEFAULT (getdate()),
[Latitude] [decimal](10, 6) NOT NULL,
[Longitude] [decimal](10, 6) NOT NULL,
[phoneNumber] [varchar](20) NOT NULL,
[sessionID] [varchar](25) NOT NULL,
[speed] [int] NOT NULL,
[direction] [int] NOT NULL,
[distance] [int] NOT NULL,
[gpsTime] [datetime] NOT NULL,
[LocationMethod] [varchar](100) NOT NULL,
[accuracy] [int] NOT NULL,
[isLocationValid] [varchar](5) NOT NULL,
[extraInfo] [varchar](255) NOT NULL,
CONSTRAINT [PK_gpslocations] PRIMARY KEY CLUSTERED
(
[GPSLocationID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: StoredProcedure [dbo].[prcGetRoutes] Script Date: 04/19/2008 09:33:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[prcGetRoutes]
AS
SET NOCOUNT ON
CREATE TABLE #tempRoutes
(
sessionID VARCHAR(25) NULL,
phoneNumber VARCHAR(20) NULL,
startTime DATETIME NULL,
endTime DATETIME NULL
)
-- get the distinct routes
INSERT #tempRoutes (sessionID, phoneNumber)
SELECT DISTINCT sessionID, phoneNumber
FROM gpslocations
-- get the route start times
UPDATE #tempRoutes
SET startTime = (SELECT MIN(gpsTime) FROM gpslocations gl
WHERE gl.sessionID = tr.sessionID
AND gl.phoneNumber = tr.phoneNumber)
FROM #tempRoutes tr
-- get the route end times
UPDATE #tempRoutes
SET endTime = (SELECT MAX(gpsTime) FROM gpslocations gl
WHERE gl.sessionID = tr.sessionID
AND gl.phoneNumber = tr.phoneNumber)
FROM #tempRoutes tr
-- format dates and then send it out as xml
SELECT sessionID '@sessionID',
phoneNumber '@phoneNumber',
'(' + CONVERT(VARCHAR(25), startTime, 100)
+ ' - ' +
CONVERT(VARCHAR(25), endTime, 100) + ')' '@times'
FROM #tempRoutes
ORDER BY phoneNumber
FOR XML PATH('route'), ROOT('routes')
DROP TABLE #tempRoutes
GO
/****** Object: StoredProcedure [dbo].[prcDeleteRoute] Script Date: 04/19/2008 09:33:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[prcDeleteRoute]
@sessionID VARCHAR(20),
@phoneNumber VARCHAR(25)
AS
SET NOCOUNT ON
DELETE FROM gpslocations
WHERE sessionID = @sessionID
AND phoneNumber = @phoneNumber
GO
/****** Object: StoredProcedure [dbo].[prcGetRouteForMap] Script Date: 04/19/2008 09:33:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[prcGetRouteForMap]
@sessionID VARCHAR(20),
@phoneNumber VARCHAR(25)
AS
SET NOCOUNT ON
SELECT latitude '@latitude', longitude '@longitude',
speed '@speed', direction '@direction', distance '@distance',
locationMethod '@locationMethod', CONVERT(VARCHAR(25), gpsTime, 100) '@gpsTime',
phoneNumber '@phoneNumber', sessionID '@sessionID', accuracy '@accuracy',
isLocationValid '@isLocationValid', extraInfo '@extraInfo'
FROM gpslocations
WHERE sessionID = @sessionID
AND phoneNumber = @phoneNumber
ORDER BY lastupdate
FOR XML PATH('locations'), ROOT('gps')
GO
/****** Object: StoredProcedure [dbo].[prcSaveGpsLocation2] Script Date: 04/19/2008 09:33:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[prcSaveGpsLocation2]
@lat VARCHAR(45),
@lng VARCHAR(45),
@mph VARCHAR(45),
@direction VARCHAR(45),
@distance VARCHAR(45),
@date VARCHAR(100),
@locationMethod VARCHAR(100),
@phoneNumber VARCHAR(20),
@sessionID VARCHAR(50),
@accuracy INT,
@locationIsValid VARCHAR(5),
@extraInfo VARCHAR(255)
AS
SET NOCOUNT ON
DECLARE @returnValue INT
SET @returnValue = 0
INSERT INTO gpslocations (Latitude, Longitude, speed, direction, distance, gpsTime, locationMethod,
phoneNumber, sessionID, accuracy, isLocationValid, extraInfo)
VALUES (@lat, @lng, @mph, @direction, @distance, @date, @locationMethod,
@phoneNumber, @sessionID, @accuracy, @locationIsValid, @extraInfo)
SET @returnValue = IDENT_CURRENT('gpslocations')
IF @returnValue > 0
SELECT @returnValue
ELSE
SELECT 0
GO