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 2025

Video: Top 25 Excel 2016 Tips and Tricks 2025
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

Få hjælp til din kodependency - dummies

Få hjælp til din kodependency - dummies

Hvis du mener, at du måske er afhængig af hinanden, har du brug for hjælp til at ændre din adfærd. Her er nogle kilder til hjælp til dem, der lider af kodependens: Læs alt hvad du kan om kodependency (men læsning alene er utilstrækkelig til at ændre). Gå til et tolv-trinsmøde for kodependenter, f.eks. Codependents Anonym, kaldet CoDA eller Al-Anon for ...

Helbredelse Depression med Mindfulness er muligt - men det tager tid - dummies

Helbredelse Depression med Mindfulness er muligt - men det tager tid - dummies

Med den rigtige støtte , er opsving fra depression med mindfulness muligt. Det er nyttigt at huske at enhver helbredelse gennem depression tager tid og ofte mødes med en op og ned proces af lows, højder, stabile perioder, lavt niveau igen, så mere stabile tider, der fører til en anden forbedring og følelse bedre. Så meget som du ...

Sunde alternativer til loathsome Personal Labels - dummies

Sunde alternativer til loathsome Personal Labels - dummies

Du kan forandre hvordan du føler ved at ændre den måde du tænker og snakker om dig selv. Nedenstående tabel opdeler mellem negative selvdæmpende etiketter, som du måske siger højt eller indadtil tænker på dig selv og konstruktive sundere bekræftelser, som du kan vælge at sige og føle i stedet. At skifte dine ord på denne måde kan hjælpe dig ...

Valg af editor

Sådan oprettes dit DSLR-filmprojekt - dummier

Sådan oprettes dit DSLR-filmprojekt - dummier

Det er nemt at starte et DSLR-filmprojekt. Bare gå til Fil → Ny → Projekt for at lave en ny. Derefter skal du give det et navn, helst en der har noget at gøre med filmen. Du kan kalde det The Last Kiss eller Debbie. Det er ligegyldigt. Bare navngiv det og klik på OK. Udnyt ...

Sådan skaber du dramatisk lys til din DSLR-film - dummier

Sådan skaber du dramatisk lys til din DSLR-film - dummier

Forstå begrebet dramatisk belysning er en start, men teori får dig kun så langt. Det hjælper ikke medmindre du kan bruge din DSLR til at skabe overbevisende belysning. Traditionelt trepunkts lys giver et godt udgangspunkt. Derefter bliver tingene mere interessante. Filmlys som Rembrandt Når du tænker på det mest dramatiske ...

Hvordan man laver magiske film med flip video - dummier

Hvordan man laver magiske film med flip video - dummier

En magisk film er magisk, primært fordi du er overlader det til FlipShare til at redigere sammen tilfældige segmenter af dine klip og billeder i en endelig forkortet film, der fanger den overordnede essens af dine klip. Nogle vigtige beslutninger Magic Movie-funktionen gør med hensyn til dine klip, når du opretter en Magic Movie ...

Valg af editor

Hvordan man arbejder med CSS3-moduler - dummier

Hvordan man arbejder med CSS3-moduler - dummier

For at gøre det enklere, kan CSS3-modulerne adskilles i ti kategorier: grænser, baggrunde, skrifttyper, teksteffekter, flere kolonner, overgange, 2D overgange, 3D overgange, animationer og brugergrænseflade. Tag et kort kig på hvert modul for at se, hvad det kan gøre. Grænser: Grænsemodulet udvider kapaciteterne i grænsekategorien ved at tilføje valgmuligheder ...

Sådan arbejder du med CSS3 Pattern Selectors - dummies

Sådan arbejder du med CSS3 Pattern Selectors - dummies

I nogle tilfælde et valg du har brug for make in CSS3 har intet at gøre med enten tags eller attributter, men mønsteret, hvor objekterne vises på siden. Du kan f.eks. Kun vælge det første objekt, uanset hvad det pågældende objekt kan være. I nogle tilfælde vil du ...

Hvordan man arbejder med skyder i CSS3 - dummies

Hvordan man arbejder med skyder i CSS3 - dummies

Skydere giver brugeren mulighed for at indtaste en værdi visuelt - som en del af en helhed. I CSS3 sikrer en skyder, at brugeren indtaster en korrekt værdi inden for en række værdier, så du behøver ikke bekymre dig om sikkerhedsproblemer eller forkerte værdier. Som et resultat giver skyderen et værdifuldt middel til ...