Manglende værdier i stored procedure
Jeg har en stored procedure som ser således ud:-----------------------------------------------
CREATE PROCEDURE dbo.doProblemList
@sort int
AS
If @sort = 1
SELECT * FROM Problems, Medarbejdere WHERE Problems.Userno = Medarbejdere.MedarbejdereID ORDER BY Priority, TimeCreated
else if @sort = 2
SELECT * FROM Problems, Medarbejdere WHERE Problems.Userno = Medarbejdere.MedarbejdereID ORDER BY BrugerNavn, Priority, TimeCreated
else if @sort = 3
SELECT * FROM Problems, Medarbejdere WHERE Problems.Userno = Medarbejdere.MedarbejdereID ORDER BY Afdelingsnavn, Priority, TimeCreated
else if @sort = 4
SELECT * FROM Problems, Medarbejdere WHERE Problems.Userno = Medarbejdere.MedarbejdereID ORDER BY Topic, Priority, TimeCreated
else if @sort = 5
SELECT * FROM Problems, Medarbejdere WHERE Problems.Userno = Medarbejdere.MedarbejdereID ORDER BY TimeCreated, Priority
else if @sort = 6
SELECT * FROM Problems, Medarbejdere WHERE Problems.Userno = Medarbejdere.MedarbejdereID ORDER BY Solved, Rejected, Priority, TimeCreated
GO
-------------------------------------------------
På min ASP side, hvor jeg skal hente de data som SP\'en returnerer har jeg følgende kode (har kun medtaget de ting jeg fandt relevante for beskrivelsen af problemet):
-------------------------------------------------
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open Connect()
Set Com = Server.CreateObject(\"ADODB.Command\")
Com.CommandText = \"doProblemList\"
Com.CommandType = adCmdStoredProc
Set Com.ActiveConnection = Conn
Set Param = Com.CreateParameter (\"@Sort\", adInteger, adParamInput, 1, Sort)
Com.Parameters.Append Param
Set RS = Com.Execute()
Og:
While Not RS.EOF
\' Afgør status på fejlen!
Status = \"[\"&RS(\"Solved\")&\":\"&RS(\"Approved\")&\":\"&RS(\"Rejected\")&\"]\"
If (RS(\"Solved\") = True AND RS(\"Approved\") = True AND RS(\"Rejected\") = False) Then
Stat2 = \"Godkendt\"
ElseIf (RS(\"Solved\") = True AND RS(\"Approved\") = False AND RS(\"Rejected\") = False) Then
Stat2 = \"Løst\"
ElseIf (RS(\"Solved\") = True AND RS(\"Approved\") = False AND RS(\"Rejected\") = True) Then
Stat2 = \"Afvist\"
ElseIf (RS(\"Solved\") = False AND RS(\"Approved\") = False AND RS(\"Rejected\") = False) Then
Stat2 = \"Uløst\"
End if
Response.Write \"<td>\"& RS(\"Priority\") &\"</td>\"
Response.Write \"<td>\"& RS(\"BrugerNavn\") &\"</td>\"
Response.Write \"<td>\"& RS(\"Afdelingsnavn\") &\"</td>\"
Response.Write \"<td>\"& RS(\"Topic\")&\"</td>\"
Response.Write \"<td>\"& RS(\"TimeCreated\")&\"</td>\"
Response.Write \"<td>\"& Status &\" -> \"& Stat2 &\"</td>\"
RS.MoveNext
response.Write \"</tr>\"
\' End If
Wend
--------------------------------------------
Alt i alt virker det meget fint, lige bortset fra, at den intet skriver ud ved RS(\"Priority\") og RS(\"Afdelingsnavn\"). Alle andre værdier udskrives rigtigt nok.
Er der nogen der har en forklaring/løsning på dette problem?
Og hvis der er nogen der har en måde at optimere den stored procedure på, er jeg da også åben for forslag...
