ТРИ … израз ЦАТЦХ у Трансацт-СКЛ детектује и рукује услови погрешке у апликацијама базе података. Ова изјава је камен темељац за руковање грешкама СКЛ Сервера и важан је дио развоја робусних апликација базе података. ТРИ … ЦАТЦХ се примењује на СКЛ Сервер почевши од 2008. године, Азуре СКЛ база података, Азуре СКЛ складиште података и Параллел Дата Варехоусе.
Увођење ТРИ … ЦАТЦХ
ТРИ … ЦАТЦХ ради тако што вам дозвољава да наведете две Трансацт-СКЛ изразе: оне које желите "пробати", а други да користе "да ухвате" све грешке које се могу појавити. Када се СКЛ Сервер сусретне са ТРИ … ЦАТЦХ изразом, одмах извршава изјаву укључену у ТРИ клаузулу. Ако се ТРИ изјава успешно изврши, СКЛ Сервер се укључује. Међутим, ако изјава ТРИ генерише грешку, СКЛ Сервер извршава наредбу ЦАТЦХ како би грациозно поступио са грешком.
Основна синтакса узима овај облик:
БЕГИН ТРИ блок изјаве ЕНД ТРИБЕГИН ЦАТЦХскл_статементЕНД ЦАТЦХ ; Лако је разумети употребу ове изјаве кроз пример. Замислите да сте администратор базе података о људским ресурсима који садржи таблицу под називом "Запослени", која садржи информације о сваком од запослених у вашој организацији. Та табела користи целобројни идентификациони број запослених као примарни кључ. Можда ћете покушати да користите изјаву испод како бисте унели новог запосленог у своју базу података: ИНСЕРТ ИНТО запослени (ид, фирст_наме, ласт_наме, ектенсион)ВРЕДНОСТИ (12497, 'Мике', 'Цхаппле', 4201)
Под нормалним околностима, ова изјава ће додати ред табелу запослених. Међутим, ако запосленик са ИД 12497 већ постоји у бази података, убацивањем редова би се прекрсило ограничење примарног кључа и резултирало сљедећом грешком: Мсг 2627, Ниво 14, Стање 1, Линија 1Повреда ПРИМАРИ КЕИ ограничења 'ПК_емплоиее_ид'. Не могу да убацим дупликат у објекат 'дбо.емплоиеес'.Изјава је прекинута.
Док вам ова грешка пружа информације које вам требају да решите проблем, постоје два проблема. Прво, порука је криптична. То укључује кодове грешака, бројеве линија и друге информације које се не могу разумјети за просечног корисника. Друго, и што је још важније, узрокује да се изјава прекида и може проузроковати срушење апликације.Алтернатива је да обришете изјаву у ТРИ … ЦАТЦХ изразу, као што је приказано овде: БЕГИН ТРИИНСЕРТ ИНТО запослени (ид, фирст_наме, ласт_наме, ектенсион)ВРЕДНОСТИ (12497, 'Мике', 'Цхаппле', 4201)ЕНД ТРИБЕГИН ЦАТЦХПРИНТ 'ЕРРОР:' + ЕРРОР_МЕССАГЕ ();ЕКСЕЦ мсдб.дбо.сп_сенд_дбмаил@профиле_наме = 'Пошта запослених',@реципиентс = 'хр@фоо.цом',@боди = 'Дошло је до грешке при креирању новог рекорда запосленог.',@субјецт = 'Грешка код умножавања ИД-а запослених';ЕНД ЦАТЦХ
У овом примеру, грешке које се јављају пријављују се и кориснику који извршава команду и хр@фоо.цом е-маил адреси. Грешка приказана кориснику је: Грешка: кршење ПРИМАРИ КЕИ ограничења 'ПК_емплоиее_ид'. Не могу да убацим дупликат у објекат 'дбо.емплоиеес'.Маил стави у ред.
Извођење апликација се наставља нормално, омогућавајући програмеру да изврши грешку. Коришћење ТРИ … израза ЦАТЦХ је елегантан начин проактивно откривање и руковање грешкама које се јављају у апликацијама СКЛ Сервер базе података. Ако желите да сазнате више о структурираном језику упита, погледајте Увод у СКЛ. ТРИ … Пример ЦАТЦХ
Учите више












