Paul Hartland
paul.hartland at googlemail.com
Wed Mar 4 04:04:54 CST 2009
To all,
Sorry about cross posting this but really having a nightmare, I have the
following store procedure in SQL Server 2005 :
usp_MyStoredProcedure
(
@nvcPayroll [nvarchar](50),
@dtiJobDate [datetime],
@nvcCode [nvarchar](1)
)
AS
BEGIN
DECLARE @intUpdateFailed INT
UPDATE dbo.MyTable
SET AvailabilityCode=@nvcCode
WHERE PayrollNo = @nvcPayroll AND
JobDate = @dtiJobDate AND
(
@nvcCode = 'A' OR
@nvcCode = 'N'
) AND
(
AvailabilityCode= 'A' OR
AvailabilityCode= 'N'
)
SET @intUpdateFailed=@@ROWCOUNT
DELETE FROM dbo.MyTable2
WHERE PayrollNo=@nvcPayroll
INSERT INTO MyTable2 (WebResult, PayrollNo)
SELECT CASE WHEN @intUpdateFailed>0 THEN 'Success' ELSE 'Failed' END,
@nvcPayroll
SELECT *
FROM MyTable2
WHERE PayrollNo=@nvcPayroll
END
If I run this in SQL Server seems to work fine, and the SELECT * FROM
MyTable2 WHERE PayrollNo=@nvcPayroll returns all the fields. However I have
a simple piece of VB code as below:
Dim rs As ADODB.Recordset
If DE.Conn.Start = adStateClosed Then
DE.Conn.Open
Endif
Set rs = DE.Conn.Execute(usp_MyStoredProcedure '999999', '" &
format(Date,"mm/dd/yy") & "','N'")
msgbox rs.fields(0)
DE.Conn.Close
' DE.Conn is a DataEnvironment connection which links to the SQL Server
The vb code returns Item cannot be found in the collection corresponding to
the requested name or ordinal.
However if I run the SP, then comment out everything except the SELECT
statement it returns the resultset.
Can anyone tell me what is happening or what I am doing wrong please.
Thanks in advance for any help on this....
--
Paul Hartland
paul.hartland at googlemail.com