Hjem Personlig finansiering Hvordan man håndterer SQL-betingelser - dummies

Hvordan man håndterer SQL-betingelser - dummies

Indholdsfortegnelse:

Video: Top 25 Excel 2016 Tips and Tricks 2024

Video: Top 25 Excel 2016 Tips and Tricks 2024
Anonim

Du kan få dit program til at se på SQLSTATE efter udførelsen af ​​hver SQL-sætning. Der er flere muligheder for, hvad du måske vil gøre næste. Hvad gør du med den viden, du får?

  • Hvis du finder en klassekode på 00 , vil du sandsynligvis ikke gøre noget. Du vil have, at udførelsen skal fortsætte, som du oprindeligt planlagde.

  • Hvis du finder en klassekode på 01 eller 02 , kan du tage en særlig handling. Hvis du forventede "Advarsel" eller "Ikke fundet" -indikation, vil du sandsynligvis lade udførelsen fortsætte. Hvis du ikke havde forventet nogen af ​​disse klassekoder, vil du sandsynligvis have en eksekutiv filial til en procedure, der er specielt designet til at håndtere det uventede, men ikke helt uventede, advarsel eller ikke fundet resultat.

  • Hvis du modtager en anden klasse kode, er der noget der er galt. Du skal grunde til en undtagelseshåndteringsprocedure. Hvilken procedure du vælger at filialere afhænger af indholdet af de tre underklasse tegn samt de to klassetegn i SQLSTATE. Hvis flere forskellige undtagelser er mulige, bør der være en undtagelseshåndteringsprocedure for hver enkelt, fordi forskellige undtagelser ofte kræver forskellige svar.

    Du kan muligvis rette fejl eller finde løsninger. Andre fejl kan være dødelige; ingen vil dø, men du kan ende med at opsige ansøgningen.

Handler erklæringer

Du kan sætte en tilstandshåndterer i en sammensat sætning. For at oprette en tilstandshåndterer skal du først erklære den betingelse, som den skal håndtere. Den angivne betingelse kan være en form for undtagelse, eller det kan bare være noget, der er sandt. Her er nogle mulige forhold.

Tilstand Beskrivelse
SQLSTATVÆRDI

'xxyyy'

Specifik SQLSTATE værdi
SQLEXCEPTION SQLSTATE klasse undtagen 00, 01 eller 02 > SQLWARNING
SQLSTATE klasse 01 IKKE FUNDET
SQLSTATE klasse 02 Følgende er et eksempel på en tilstandserklæring:

BEGIN DECLARE constraint_violation CONDITION FOR SQLSTATE VALUE '23000'; ENDE;

Dette eksempel er ikke realistisk, fordi den SQL-sætning, der kan forårsage tilstanden - såvel som den håndterer, der ville blive påkaldt, hvis tilstanden opstod - også ville være vedlagt inden for BEGIN … END-strukturen.

Handler-handlinger og håndteringseffekter

Hvis der opstår en betingelse, der påberåber en handler, udføres handlingen, der er angivet af håndtereren. Denne handling er en SQL-sætning, som kan være en sammensat sætning. Hvis handlerhandlingen fuldføres med succes, udføres handler-effekten.Følgende er en liste over de tre mulige håndteringseffekter:

FORTSÆT: Fortsæt eksekveringen umiddelbart efter den erklæring, der forårsagede at håndtereren blev påberåbt.

  • EXIT: Fortsæt eksekvering efter den sammensatte sætning, der indeholder handleren.
  • UNDO: Fortryd arbejdet i de foregående sætninger i den sammensatte sætning, og fortsæt derefter udførelsen efter erklæringen, der indeholder handleren.

  • Hvis håndtereren kan rette op på det problem, der påberåber handleren, kan CONTINUE-effekten være passende. EXIT-effekten kan være hensigtsmæssig, hvis håndtereren ikke løste problemet, men de ændringer, der er foretaget i den sammensatte sætning, behøver ikke at fortrydes. UNDO-effekten er hensigtsmæssig, hvis du vil returnere databasen til den tilstand, den var i, før den sammensatte sætning begyndte at udføres.

Overvej følgende eksempel:

BEGIN ATOMIC DECLARE constraint_violation CONDITION FOR SQLSTATE VALUE '23000'; ERKLÆR UNDO HANDLER FOR begrænsning_violation RESIGNAL; INSERT TIL elever (StudentID, Fname, Lname) VÆRDIER (: sid,: sfname,: slname); Indsæt i roster (ClassID, Class, StudentID) VÆRDIER (: cid,: cname,: sid); ENDE;

Hvis et af INSERT-udsagnene forårsager en begrænsning, som f.eks. Forsøger at tilføje en post med en primærnøgle, der duplicerer en primærnøgle allerede i tabellen, antager SQLSTATE en værdi på '23000' og indstiller således betingelsen for begrænsning af vold til en sand værdi.

Denne handling får håndtereren til at UNDO ændre de ændringer, der er foretaget på nogen tabeller ved enten INSERT-kommandoen. RESIGNAL-sætningen overfører kontrollen tilbage til proceduren, der kaldte den aktuelt udførte procedure.

Hvis begge INSERT-sætninger udføres korrekt, fortsætter eksekveringen med sætningen efter END-søgeordet.

ATOMIC-søgeordet er obligatorisk, når en håndterings effekt er UNDO. Dette er ikke tilfældet for håndtere, hvis effekt er enten FORTSÆT eller EXIT.

Hvordan man håndterer SQL-betingelser - dummies

Valg af editor

Hvad er Array Formulas i Excel 2013? - dummies

Hvad er Array Formulas i Excel 2013? - dummies

En matrixformel i Excel 2013 (og andre regneark) er en speciel formel, der opererer på en række værdier. Hvis et celleområde leverer dette interval (som det ofte er tilfældet), betegnes det som et arrayinterval. Hvis denne rækkevidde leveres af en liste over numeriske værdier, er de kendt som ...

Ved hjælp af regnearkfunktioner til statistisk analyse i Excel 2016 - dummies

Ved hjælp af regnearkfunktioner til statistisk analyse i Excel 2016 - dummies

Excel 2016b har en række funktioner til Statistisk analyse. Funktionsbiblioteket på fanen Formler viser alle kategorier af Excel-regnearkfunktioner. Trinene i at bruge et regneark funktion er Skriv dine data i et datarray og vælg en celle for resultatet. Vælg den relevante formelskategori og vælg en ...

Hvad er nyt i Excel 2016 til statistisk analyse? - dummies

Hvad er nyt i Excel 2016 til statistisk analyse? - dummies

Microsoft har lavet nogle få ændringer i Excel's Ribbon (fanebåndet øverst), hvilket afspejler ændringer i Excel. Den mest oplagte tilføjelse er pæren øverst til højre for tilføjelser. Det er mærket "Fortæl mig hvad du vil gøre. "Dette kaldes Tell Me-boksen, og det er nyt ...

Valg af editor

Sådan postes på en vens Facebook-tidslinje - dummies

Sådan postes på en vens Facebook-tidslinje - dummies

Dit nyhedsfeed trækker indlæg, som dine Facebook-venner lav på et sted, så du kan læse dem alle på én gang. Men nogle gange vil du læse alt om kun en person. Heldigvis er alle deres indlæg blevet samlet på deres tidslinjer. Tidslinjen er ligesom en nyhedsfeed alt om en person. ...

Sådan sender du en Facebook-begivenhed - dummies

Sådan sender du en Facebook-begivenhed - dummies

Den første måde du sikkert finder ud af om Facebook begivenheden er gennem en anmeldelse. Når en ven inviterer dig til en begivenhed, vises et lille rødt flag over meddelelsesikonet i den store blå bar øverst. Klik på ikonet for at åbne din underretningsmenu; Klik derefter på den invitation, der skal tages ...

Hvordan man kan se de billeder du er på Facebook - dummies

Hvordan man kan se de billeder du er på Facebook - dummies

Hvis du har meget af Facebook venner, du er sandsynligvis i et ton af fotos. Du kan se de billeder, du er i, uden at skulle gå hele Facebook, så længe du er mærket i dem. Måske har du tagget dem selv, eller dine venner har måske tagget dig. Det første sted du ...

Valg af editor

Digital SLR-fotografi Alt-i-One til Dummies Cheat Sheet - dummies

Digital SLR-fotografi Alt-i-One til Dummies Cheat Sheet - dummies

Hvis du 'er interesseret i fotografering, du finder ingen bedre enhed end en digital spejlreflekskamera (eller dSLR). Uanset om du er amatør eller professionel, kan du finde en dSLR, der passer til dine behov. Du kan virkelig ikke slå kombinationen af ​​magt, fleksibilitet, vækstpotentiale og "accessorize-ability" af en dSLR. Med oplysningerne i denne ...

Hvordan man tager gebyr som bryllupsfotograf - dummier

Hvordan man tager gebyr som bryllupsfotograf - dummier

Som bryllupsfotograf, dit job er at hjælpe De formelle portrætter flyder så jævnt som muligt. Du kan lægge meget af grunden i månederne før den faktiske bryllupsdato som du kommunikerer med parret. Hvis du gør dine lektier, kan du fokusere på at holde portræt sessioner organiseret og opretholde kontrol ...