Э. В. Фуфаев, Д. Э. Фуфаев



жүктеу 10,13 Mb.
Pdf просмотр
бет55/93
Дата19.11.2018
өлшемі10,13 Mb.
#21568
түріОқулық
1   ...   51   52   53   54   55   56   57   58   ...   93

Меңзерді  айқындау  кезінде  біз  қайтадан  Transact  SQL  Getdate() 
қызметін  пайдаландық,  ол  ағымдағы  кҥннің  мəнін  қайтарады. 
Сонымен, белгілі бір меңзер кітапханаға уақытында қайтармаған, кітап 
атаулары  көрсетілген,  қарызға  алушылар  тізімін  қҧрайтын  жолдар 
жинағын жасайды. 
SQL2  Transact  SQL  стандартына  сəйкес  меңзердің  кеңейтілген 
анықтамасын қҧрайды.  
DECLARE  <меңзердің_аты>[INSENSITIVE]  [SCROLL]  CURSOR 
FORE
C
T ТАҢДАУ ОПЕРАТОРЫ

[ FOR {READ ONLY | UPDATE [OF <баған_аты1> [....n]]}] 
INSENSITIVE  (сезімтал  емес)  параметрі  меңзерді  ашқаннан  кейін 
басқа  пайдаланушылар  жасалған  бастапқы  кестелердегі  барлық 
өзгерістер көрінбейтін, айқындалатын меңзерге сəйкес келетін жолдар 
жинағының  режимін  айқындайды.  Осындай  деректер  жинағы  басқа 
пайдаланушылармен  бастапқы  кестелерде  жҥргізілуі  мҥмкін  барлық 
өзгерістерге  сезімтал  болмайды,  меңзердің  осы  тҥрі  ДҚ-мен  ―дереу 
жабысуына‖ сəйкес келеді. 
ДҚБЖ  осындай  меңзерді  аса  жылдам  əрі  ҥнемді  өңдей  алады. 
Сондықтан  егер  ДҚ  жағдайын  белгілі  бір  нақты  уақытқа  қарастыру 
жəне  өңдеу  шынымен  қажет  болса,  онда  ―сезімтал  емес  меңзерді‖ 
жасаудың мəні бар. 
SCROLL өзекті сөзі FETCH операторында меңзер бойынша (FIRST, 
LAST,  PRIOR,  NEXT,  RELATIVE,  ABSOLUTE)  кез-келген  режимге 
орналастыру қолжетімді болатынын айқындайды. 
Егер SCROLL  өзекті  сөзі көрсетілмесе,  онда  тек стандартты  ілгері 
жылжыту қолжетімді болып есептеледі: FETCH операторындағы N
E
XT
 
сипаттізімі. 
Егер READ ONLY (тек оқуға арналған) сипаттізімі көрсетілсе, онда 
бастапқы  кестелердің  өзгерістері  мен  жаңартулары  осы  меңзерді 
пайдалана  отырып  орындалмайды.  Осындай  сипаттізімі  бар  меңзер 
өңдеу  барысында  ең  жылдам  болуы  мҥмкін.  Алайда  READ  ONLY 
сипаттізімін  арнайы  көрсетпесеңіз,  онда  ДҚБЖ  негізгі  кестелермен 
модификация  операцияларына  рҧқсат  етілген  деп  есептейді,  бҧл 
жағдайда  ДҚ  тҧтастығын  қамтамасыз  ету  ҥшін  жҥйе  меңзермен 
операцияларды баяу өңдейді.  
UPDATE [OF <баған аты 1> [,...<баған атыn>]] параметрі пайдалану 
кезінде  біздің  меңзермен  жҧмысымыз  барысында  өзгерістерге  рҧқсат 
етілетін,  бағандар  тізбесін  белгілейміз.  Осындай  шектеу  ДҚБЖ 
жҧмысын  жеңілдетеді  жəне  жылдамдатады.  Егер  бҧл  параметр 
көрсетілмесе, онда меңзердің барлық бағандарын өзгертуге болады деп 
болжалады.  Біздің  мысалға  оралайық.  Егер  бізге  қарыз  алушылар 
туралы  мəліметтерді  беретін  ДҚ  дереу  жабысуы  қажет  болса,  онда 
меңзермен  жҧмысты  жылдамдату  мҥмкіндігін  беретін  барлық 
параметрлерді қолданамыз.  
 


Онда меңзерді сипаттау операторы келесі тҥрде болады: 
DECLARE Debtor_reader_cursor INSENSITIVE CURSOR FOR 
SELECT 
READERS.FIRST_NAME. 
READERS.LAST_NAME. 
READERS.ADRES. 
READERS.HOME_PHON. 
READERS.WORK_ 
PHON. BOOKS.TITLE 
FROM READERS.BOOKS.EXEMPLAR 
WHERE READERS.READER_ID = EXEMPLAR.READER_ID AND 
BOOKS.ISBN = EXEMPLARE.ISBN AND EXEMPLAR.DATA_OUT 
> Getdate () 
ORDER BY READERS.FIRST_NAME 
FOR READ ONLY 
Меңзерді  сипаттау  кезінде  меңзермен  байланысты  жолдардың 
негізгі  жинағын  жасау  ҥшін  пайдаланылатын  SELECT  операторының 
тҥріне  шектеу  жоқ.  SELECT  операторында  топтастырулар  жəне 
кіріктірілген  қосалқы  сҧраныстар,  есептелетін  өрістер  пайдаланылуы 
мҥмкін.  
Кеңейтілген FETCH операторы келесі синтаксиске ие: FETCH 
[NEXT | PRIOR | FIRST | LAST | 
ABSOLUTE {n | <ауыспалының_аты>} 
| RELATIVE{n|<ауыспалының_аты>}] 
FROM 
<меңзердің аты>INTO <негізгі ауыспалылар тізімі> 
МҧндаNEXT  параметрі  меңзермен  байланысты  негізгі  жолдар 
жинағындағы  ағымдағыдан  кейінгі  келесі  жолдың  таңдалуын 
белгілейді.  PRIOR  параметрі  ағымдағыға  қатысты  бҧдан  бҧрынғы 
жолдың жылжытылуын белгілейді. FIRST параметрі жинақтың бірінші 
жолына,  ал  LAST  параметрі  жинақтың  соңғы  жолына  жылжытылуын 
белгілейті.  
Бҧдан  басқа,  кеңейтілген  жылжыту  операторында  бірден 
белгіленген  жолған  орналастыруға  рҧқсат  етіледі;  бҧл  ретте 
ABSOLUTE параметрімен белгілей отырып, абсолютті адресаттау жəне 
RELATIVE 
параметрімен 
белгілей 
отырып, 
салыстырмалы 
адресаттауға  рҧқсат  етіледі.  Салыстырмалы  адресаттау  кезінде  оң  сан 
нҧсқарды  ағымдағы  жазбадан  төмен,  теріс  сан  ағымдағы  жазбадан 
жоғары жылжытады.  
Алайда  кеңейтілген  FETCH  операторын  қолдану  ҥшін  SQL2 
стандартына  сəйкес  меңзердің  сипаттамасы  міндетті  тҥрде  SCROLL 
өзекті  сөзін  қҧрауы  керек.  Кейде  мҧндай  меңзерлер  бҧралатын  деп 
аталады. Стандартқа осы меңзерлер жақын арада ғана енді, сондықтан 
коммерциялық  ДҚБЖ-де  ҧқсас  меңзерлермен  жҧмыс  істейтін 
операторлар жиі қатты ерекшеленеді.  
 


Бҥгінгі  кҥннің  реалийлері  коммерциялық  ДҚБЖ  жеткізушілерін  SQL 
соңғы  стандартын  аса  қатаң  қадағалауға  мəжбҥрлейді.  Техникалық 
қҧжаттамада  FETCH  операторының  синтаксисінің  екі  нҧсқасын 
кездестіруге  болады:  біреуі,  стандартқа  сəйкес  келеді  жəне  екіншісі 
меңзермен  жҧмыс  істеу  ҥшін  тек  ДҚБЖ  деректерімен  ҧсынылатын 
қосымша мҥмкіндіктермен стандартты кеңейтеді.   
Егер  сіз  ДҚ  басқа  платформаға  орын  ауыстыру  қажет  деп 
болжасаңыз,  ал  бҧны  əрқашан  көздеу  керек,  онда  стандартты 
мҥмкіндіктерді  пайдаланған  жөн.  Бҧл  жағдайда  қосымша  аса 
платформалы-тəуелсіз  болады  жəне  басқа  ДҚБЖ-ға  орын  ауыстыру 
жеңіл болады.  
9.3. 
Меңзерді жабу операторы 
Меңзерді  жабу  операторының  синтаксисі  қарапайым,  ол  мынадай  
болады: 
CLOSE<меңзердің_аты> 
Меңзерді  жабу  операторы  меңзерді  ашу  операторымен  жасалған 
уақытша  кестені  жабады  жəне  қолданбалы  бағдарламаның  осы 
объектке  қолжетімдігін  тоқтатады.  Жабу  операторының  бірден-бір 
параметрі меңзердің аты болып табылады.  
Меңзерді  жабу  операторы  меңзерді  ашу  операторынан  кейін  кез-
келген сəтте орындалуы мҥмкін.  
Кейбір коммерциялық ДҚБЖ-де меңзерді жабу операторынан басқа 
меңзерді  деактивациялау  (жою)  операторы  пайдаланылады.  Мысалы, 
MS SQL Server 7.0-де меңзерді жабу операторымен қатар  
DEALLOCATE <меңзердің_аты> операторы пайдаланылады. 
Мҧнда  меңзерді  жабу  операторы  меңзерге  байланысты  деректер 
жинағын жоймайды, тек оған қолжетімдікті жабады жəне бҧдан бҧрын 
осы меңзермен байланысты болған барлық бҧғаттауларды босатады.  
DEALLOCATE SQL Server операторын орындау кезінде DECLARE 
меңзерді  сипаттау  командасымен  пайдаланылатын  бөлінетін  жадты 
босатады. Осы команданы орындағаннан кейін осы меңзер ҥшін OPEN 
командасын орындау мҥмкін емес. 
9.4. 
Меңзерді пайдалана отырып деректерді жою және жаңарту 
Қолданбалы  бағдарламаларда  меңзерлер  жиі  деректерді  ретімен 
қарау  ҥшін  пайдаланылады.  Егер  меңзер  топтастыру  операциясымен 
байланысты  болмаса,  онда  іс  жҥзінде  меңзердің  əрбір  жолы  қатаң 
тҥрде  бастапқы  кестенің  бір  жолына  ғана  сəйкес  келеді  жəне  осы 
жағдайда меңзерді деректерді жедел тҥзету ҥшін пайдалану қолайлы. 


жүктеу 10,13 Mb.

Достарыңызбен бөлісу:
1   ...   51   52   53   54   55   56   57   58   ...   93




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау