I would *GUESS* that the last argument there--Colour--should be an integer, but you are passing a string (that is, 'xxx' where xxx is the value of your Colour variable.
Anyway, you are also making a major goof in using REPLACE with numeric values.
MUCH MUCH BETTER--and safer--to do:
Code:
SQL = "insertAdDetails " & CLNG(AD_ID) & "," & CLNG(Seller_ID) & ",1,1,13,0, '" & Replace(Colour, "'", "") & "'")
Response.Write "DEBUG SQL: " & SQL & ""
Set rsDetails = conn.Execute( SQL )
Incidentally, if that INSERT does NOT return a recordset, you should not bother assigning it to the rsDetails variable.
And, again, if COLOUR should really be a number (and I think it probably should be, based on the error message), then:
Code:
SQL = "insertAdDetails " & CLNG(AD_ID) & "," & CLNG(Seller_ID) & ",1,1,13,0," & CLNG(Colour)
Response.Write "DEBUG SQL: " & SQL & ""
Set rsDetails = conn.Execute( SQL )
But ALWAYS ALWAYS ALWAYS learn to DEBUG! Put in lots of Response.Write calls, so you can see what is happening.
If you still can't figure it out, show us the code from the stored procedure.