Я пытаюсь выполнить следующий запрос к базе данных MS SQL 2008 в тестовой программе ASP.Запрос отлично работает в «Server Management Studio», и я могу без проблем подключиться к базе данных из программы ASP.Однако, когда я собираю все это вместе, я получаю следующую ошибку:
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
/test.asp, line 59
Строка 59 соответствует последней строке в следующем фрагменте:
set c = Server.CreateObject("ADODB.connection")
c.Open "PROVIDER=sqloledb;SERVER=DESKTOP-VM-WIN7\SQLEXPRESS;DATABASE=ExamDB;UID=USERNAME;PWD=PASSWORD;"
set r = c.Execute("DECLARE @session_id uniqueidentifier; " &_
"SET @session_id = 'BFAABD2A-4717-4619-8CF6-E20009B97E8F'; " &_
"DECLARE @exam_id uniqueidentifier; " &_
"SET @exam_id = (SELECT exam_id " &_
" FROM sessions " &_
" WHERE session_id = @session_id); " &_
"CREATE TABLE #exam (concept_title nvarchar(50), " &_
" concept_description xml, " &_
" concept_questions xml); " &_
"DECLARE @concept_id uniqueidentifier; " &_
"DECLARE concept_cursor CURSOR FOR " &_
"SELECT concept_id " &_
"FROM exams " &_
"WHERE exam_id = @exam_id; " &_
"OPEN concept_cursor; " &_
"FETCH NEXT FROM concept_cursor INTO @concept_id; " &_
"WHILE @@FETCH_STATUS = 0 " &_
"BEGIN " &_
" INSERT #exam " &_
" SELECT concepts.concept_title, " &_
" concepts.concept_description, " &_
" (SELECT questions.question_title, " &_
" questions.question_description, " &_
" questions.question_answer, " &_
" questions.question_difficulty " &_
" FROM questions " &_
" INNER JOIN concepts " &_
" ON questions.question_id = concepts.question_id AND concepts.concept_id = @concept_id " &_
" ORDER BY concepts.question_order " &_
" FOR XML PATH('question'), ELEMENTS, TYPE) " &_
" FROM concepts " &_
" WHERE concepts.concept_id = @concept_id AND concept_title IS NOT NULL; " &_
" FETCH NEXT FROM concept_cursor INTO @concept_id; " &_
"END; " &_
"SELECT * FROM #exam " &_
"FOR XML PATH('concept'), ELEMENTS, ROOT('exam'), TYPE; " &_
"CLOSE concept_cursor; " &_
"DEALLOCATE concept_cursor; " &_
"DROP TABLE #exam; ")
Response.Write(r(0))
Что-то явно не так??Кроме того, есть ли хороший подход для устранения проблем такого рода?Спасибо!