Francisco H Tapia
my.lists at verizon.net
Mon Jul 28 18:01:33 CDT 2003
I have a stored procedure in my database that runs fine in QA. In fact I
created 2 versions of this sproc and both of them run fine in QA. In an ADP
that I have one sproc runs and the other does not. What would be different?
In the where clause I am checking for >= or <.
The code is "I D E N T I C A L" in both sprocs lets call them stp_New and
stp_Old the new checks for any new entries since today 12:00am, and the Old
checks for any records older than today at 12:00am.
If I run the sproc in Access (ADP) it does not give me any data for stp_New
but it does give me the correct results for stp_Old. If I go to QA I can
run either sproc and they both execute correctly. I am at a loss about this
one... anyone ever run into something similar?
This is my code...
----------------------------------------------------------------------------
----------------------------
ALTER PROCEDURE stp_004A_lstHelpDeskNewCalls (@LoginID
NVARCHAR(50)) AS
SET NOCOUNT ON
Declare @SetDateTime as datetime, @entryUser as uniqueidentifier
SET @entryUser = dbo.udfEntryUSER(@LoginID)
SET @SetDateTime = CAST (
CAST (DATEPART(m, getUTCdate()) AS VARCHAR(4)) + '/' +
CAST (DATEPART(d, getUTCdate()) AS VARCHAR(4))+ '/' +
CAST (DATEPART(yyyy, getUTCdate()) AS VARCHAR(4)) + ' 00:00:00'
AS DATETIME)
IF EXISTS (select * from tempdb.dbo.sysobjects where id =
object_id(N'tempdb..#MaxStatus')) BEGIN
DROP TABLE #MaxStatus
END
CREATE TABLE #MaxStatus
([HelpDeskID] [UniqueIdentifier] Not Null,
[HelpStatusID] [int] Not Null,
[entryTime] [dateTIME] Not Null)
INSERT INTO #MaxStatus(HelpDeskID, HelpStatusID, entryTIME)
Select A.HelpDeskID, A.HelpStatusID, A.entryTIME FROM
dbo.tbl_HelpDeskStatus AS A WITH(NOLOCK)
LEFT OUTER JOIN
(SELECT HelpDeskID, Max(entryTIME) as entryTIME From
dbo.tbl_HelpDeskStatus WITH(NOLOCK) Group By HelpDeskID) AS B
ON (A.HelpDeskID = B.HelpDeskID AND A.entryTIME = B.entryTIME AND
HelpStatusID < 2)
IF EXISTS (select * from tempdb.dbo.sysobjects where id =
object_id(N'tempdb..#HelpDeskCallDetails')) BEGIN
DROP TABLE #HelpDeskCallDetails
END
CREATE TABLE #HelpDeskCallDetails
([HelpDeskID] [uniqueidentifier] Not Null,
[CallNotes] [nvarchar](20) Null,
[ContactAddrID] [uniqueidentifier] Null,
[entryTIME] [datetime] Null,
[entryUSER] [uniqueidentifier] Null)
INSERT INTO #HelpDeskCallDetails (HelpDeskID, CallNotes, ContactAddrID,
entryTIME, entryUSER)
Select A.HelpDeskID, LEFT(A.CallNotes, 20), A.ContactAddrID, A.entryTIME,
A.entryUSER FROM dbo.tbl_HelpDeskCallDetails AS A WITH(NOLOCK)
INNER JOIN
(SELECT HelpDeskID, Max(entryTIME) as entryTIME From
dbo.tbl_HelpDeskCallDetails WITH(NOLOCK) Group By HelpDeskID) AS B
ON (A.HelpDeskID = B.HelpDeskID AND A.entryTIME = B.entryTIME )
Select HD.CaseNumberID, M.SN,Ctc.ContactName,Co.CompanyName,
Addr.LocationName,ZipList.State,
HelpDeskCallDetails.CallNotes AS [Call Notes],
HelpDeskCallDetails.entryTIME
FROM dbo.tbl_HelpDesk HD WITH(NOLOCK) INNER JOIN dbo.tbl_Machine M
WITH(NOLOCK) ON HD.MachineID = M.MachineID
LEFT OUTER JOIN
(SELECT * FROM #MaxStatus WITH(NOLOCK) ) AS MaxStatus
ON HD.HelpDeskID = MaxStatus.HelpDeskID
INNER JOIN
(SELECT * FROM #HelpDeskCallDetails WITH(NOLOCK) ) AS HelpDeskCallDetails
ON HD.HelpDeskID = HelpDeskCallDetails.HelpDeskID
LEFT OUTER JOIN dbo.tbl_ContactAddress AS CtcAddr WITH(NOLOCK) ON
HelpDeskCallDetails.ContactAddrID = CtcAddr.ContactAddrID
LEFT OUTER JOIN dbo.tbl_Contacts AS Ctc WITH(NOLOCK) ON CtcAddr.ContactID
= Ctc.ContactID
LEFT OUTER JOIN dbo.tbl_Address As Addr WITH(NOLOCK) ON CtcAddr.AddrID =
Addr.AddrID
LEFT OUTER JOIN dbo.tbl_Company AS Co WITH(NOLOCK) ON Addr.CompanyID =
Co.CompanyID
LEFT OUTER JOIN dbo.tbl_AddrZipList AS ZipList WITH(NOLOCK) ON Addr.ZipID
= ZipList.ZipID
--THIS LINE BELOW IS WHAT CHANGES from >= to <, both run in QA, but only the
OLD (<) runs in Access
Where HelpDeskCallDetails.entryTIME >= @SetDateTime AND
HelpDeskCallDetails.entryUSER = @entryUser
ORDER BY HelpDeskCallDetails.entryTIME ASC
IF EXISTS (select * from tempdb.dbo.sysobjects where id =
object_id(N'tempdb..#MaxStatus')) BEGIN
DROP TABLE #MaxStatus
END
IF EXISTS (select * from tempdb.dbo.sysobjects where id =
object_id(N'tempdb..#HelpDeskCallDetails')) BEGIN
DROP TABLE #HelpDeskCallDetails
END
SET NOCOUNT OFF
-Francisco
http://rcm.netfirms.com