Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pulapka dla bledow w t-sql
Forum PHP.pl > Forum > Bazy danych > Microsoft SQL Server / MSDE
nameless
moderatorzy tego rofum sie juz na mnie wkurzaja ale postanowilem napisac jeszcze jeden post bo wydaje mi sie ze to naprawde wazne i przyda sie nie tylko mi ale innym przegladajacym to forum

mam tabele na ktora chce nalozyc triggera
ale!!!
nie mam 100% pewnosci ze trigger sie wykona z roznych powodow nie wazne jakich
w kazdym razie chcialbym zeby pomimo tego ze trigger sie nie wykona transakcja zostala zatwierdzona a sql nie moze zwrocic bledu
jest to tylko trigger pomocniczy i jak sie nie wykona to trudno ale dane musza byc wprowadzone do bazy i nie moze zostac zwrocony blad
Method
jestem strasznie ciekaw z jakich powodow trigger sie nie wykona ? dry.gif
opisz prosze [exclamation.gif]

a tak a propos powiedz mi czy ty wiesz napewno co to procedury wyzwalane questionmark.gif
nameless
zakladasz ze jestes nieomylny?
no to gratuluje samooceny tylko tak dalej. jeszcze w powinienes pisac windowsy i mowic ludziom ze to musi byc bez bledu. kazdy program zawiera bledy tylko trzeba wiedziec jak go zepsuc.
moze sie nie wykonac np z mojego bledu
ale generalnie jest tak ze ma to byc dzialanie dodatkowe
nie ma koniecznosci wykonywania tych funkcji a przynajmniej nie jest to konieczne z punktu widzenia aplikacji ktora na tej bazie dziala
aplikacje nie ja pisalem i nie moge jej zmienic wiec tam przechwytywanie wyjatkow i innych bledow odpada
a jesli trigger sie nie wykona cofa transakcje
generalnie pierwsza instrukcja triggera moze byc zatwerdzenie transakcji
ale dalej zwracany jest blad i aplikacja tego nie przelknie
Method
po pierwsze:
Wcale nie zakladam ze jestem nieomylny, ty za to plytko interpretujesz i reagujesz agresywnie.
Pieknie mowisz o windowsach - no tak zawsze mozna zwalic na Billa G. Jak sa takie zle to po co ich uzywasz ?

po drugie:
nie odpowiedziales na moje pytanie na temat procedur wyzwalanych ?

po trzecie:
W duzych projektach istnieje ktos kto sie nazywa administratorem aplikacji - bo jak raczyles wspomniec nie ma softu bez bledow.

a teraz tak sie zastanowmy do czego sluza triggery:

- kontrola danych w tabelach - czyli jakas tam rejestracja dokonywanych zmian

- automatyzacja przekazywania informacji do innych programow , ze jest wymagane podjecie okreslonych dzialan w wypadku dokonania zmian na tabeli

- zachowanie zlozonych wiezow integralnosci, takich ktorych nie zalatwisz wiezami deklaracji

- A ponadto zdarzeniem wyzwalajacym jest operacja DML
( nie liczac Instead-of)

- wyzwalacz sam w sobie uruchamiany jest w tej samej transakcji co instrukcja wyzwalajaca.
Logicznym wydaje sie wiec ze cialo jego nie moze wydawac instrukcji sterowania transakcja.
nameless
ok
opisze ci problem
jest aplikacja na ktora nie mam wplywu
jest zainstalowana i nic moge w niej przerobic itd
chce zrobic archiwum zeby przepisywaly mi sie nowe rekordy
ale chce je miec na kazdy mieciac w innej tabeli - danych jest duzo
nie moge sobie pozwolic na utrate chocby jednego rekordu bo odtwirzenie go graniczy z cudem - jesli wogole dowiedzialbym sie ze ocs poszlo nie tak

poza tym nie musisz mi tlumaczyc co to trigger
a tak wogole to mozna uzyc commit transaction w triggerze i transakcja zostanie zatwierdzona ale jesli wystapi blad zostanie on zwrocony do aplikacji i aplikacja wariuje
SongoQ
Cytat
a tak wogole to mozna uzyc commit transaction w triggerze i transakcja zostanie zatwierdzona ale jesli wystapi blad zostanie on zwrocony do aplikacji i aplikacja wariuje

Obsluga wyjatkow?questionmark.gif Przeciez jest cos takiego.

Mam pytanie odnosnie bledu w triggerze. Jakiego typu bledy przewidujesz??
Jesli chesz tylko rekordy przepisywac to wystrarczy na dany miesiac tworzyc taka sama strukture tabeli co tabela bazowa, wtedy nie bedzie bledu.
nameless
no to wlasnie o to pytalem czy jest obsluga wyjatkow w transact sqlu?
bo ja nie umie czegos takiego znalezc w dokumentacji
moze jeakies naprowadzenie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.