12 Курсорлар. Курсор түсінігі. Курсорлар түрлері. Курсорды басқару Реляциялық деректер қорына сұраныс әдетте деректердің бірнеше қатарын (жазба) қайтарады, бірақ қосымша бір рет өңдеу кезінде бір жазбаны ғана өңдейді. Егер ол бірнеше қатармен бір уақытта жұмыс атқарса да (мысалға, деректерді электронды кесте түрінде шығарады) олардың саны бұрынғыдай шектелген. Модификация жою немесе деректерді қосу кезінде жұмыс бірлігі қатар болып табылады. Бұл жағдайда бірінші болып курсор концепциясы шығады, осындай контексте курсор – қатарға сілтеуіш болады. SQL-дегі курсор – бұл SQL-дің ақырғы операторын сақтауға арналған деректер қоры жадындағы аумақ. Егер ағымды оператор – деректер қорына сұраныс болса, жадыда сұраныстың деректер жолы сақталады, ол ағымды мән немесе курсордың ағымды жолы деп аталады. Жадыдағы көрсетілген аумақ аталған және қолданбалы программаға рұқсат етілген.
Әдетте, курсорлар деректер қорынан сақталатын кейбір ішкі жиын ішіндегі ақпаратты сақтауға қолданылады. Әрбір уақыт сәтінде қолданбалы программамен курсордың бір жолы тексерілуі мүмкін. Курсорлар SQL операторларында жиі қолданылады, олар - процедуралы типтегі тілдерде жазылған қондырылған қолданбалы программалар. Олардың кейбіреуі деректер қоры серверімен айқын құрылмайды, басқалары программистпен аңыкталады. Курсор – нәтижелеуші жиынтық және жолдардың біреуіне көрсетуші. SQL стандартына сәйкес курсорлармен жұмыс кезінде келесі негізгі әрекеттерді даралауға болады:
курсордан іріктеу және деректер жолын оның көмегімен өзгерту;
курсорды жабу, оған кейін ол қолданушылық программалар үшін рұқсат етілмейді;
курсорды босату, яғни курсорды объект ретінде жою, себебі оны жабу онымен әрекеттегі жадыны босатпайды.
Түрлі жүзеге асыру кезінде курсорды анықтауда кейбір ерекшеліктер болады. Мысалға, кейде жасап шығарушы курсорға бөлінетін жадыны босатуы тиіс. Курсорды босатқан соң онымен сәйкес жады да босатылады. Оның атын қайтадан пайдалануға мүмкіндік туады. Басқа жүзеге асыру кезінде курсорды жапқанда жадының босатылуы анық жүрмейді. Қалпына келтірген сәтте басқа операцияларға рұқсат етіледі: басқа курсорды ашу және т.с.с.
Кейбір жағдайларда курсорды қолданбауға болмайды. Бірақ мүмкіндігінше бұдан алшақтап, деректерді өңдеудің стандартты командаларымен жұмыс істеген дұрыс: SELECT, UPDATE, INSERT және DELETE. Курсорлар өзгерту операцияларын барлық деректер көлеміне рұқсат етпейді, курсормен деректерді өңдеу операциясының орындалу жылдамдығы SQL стандартты құралына қарағанда төмен.