Stored Procedure Stored Procedure er programstumper, der gemmes i databasen og afvikles op databaseserveren på samme måde som forespørgsler. Med Stored.

Slides:



Advertisements
Lignende præsentationer
Kort om JavaScript Afvikles i browser på klienten Sendes fra server (php, asp, aspx, htm) eller startes i klient som htm/html fil. Skabelon: –”main” -
Advertisements

Mapning af 1 til mange forbindelser
SQL underforespørgsler og Join
SQL 1 DDL og DML.
Elmasri kap , Databaser Kvalitetsattributter og arkitektur Sikkerhed Transaktioner.
Distribueret programmering, specielt.NET Remoting Rasmus D. Lehrmann DM
Intro Eksamen 4-ugers-projekter? Eksamensforberedelse De sidste tre gange?
View Procedures Trigger og Function Jesper Tørresø DAB1 E07 1. november 2007.
GP 4, 19/ Grundlæggende programmering Efterår 2001 Forelæsning 4 onsdag 19/ kl. 9:15 – 12:00.
Regnskab & økonomistyring - Lektion 15 HD 5. semester forår 2010 v/ Jens Godik Højen, April 2010.
Regnskab & økonomistyring - Lektion 2 HD 5. semester forår 2010
Hvordan man skriver koden.
NOEA/IT FEN - Databaser/Sikkerhed 1 Lektion 10 Sikkerhed og integritet Områder Autorisationsmatrix Realisering i SQL.
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
6. SQL1 Standardiseret spørge-sprog mv. til relationsdatabaser.
Lasse Steensgaard [xls]Opsamlende forelæsning på W2, 2. april 2003slide 1 HTML og PHP: Baglæs fra output til input PHP: Variable, strenge og arrays Funktioner,
22/092VE/E00/RB1 Introduktion til SQL Datalogi 2VE E00 DIKU Forelæsninger 22/9 og 29/9.
Relationsdatabaser og SQL
7. SQL constraints og triggers1 Aktive elementer i SQL.
2009NOEA/IT - Databaser/SQL1 Realisering af den relationelle model i SQL-baserede DBMS’er SQL er mere end forespørgsler - det omfatter bl.a. –DDL Data.
1 HMAK XMLRelationel model og XMLNOEA / PQC 2005 SQLServer og XML Hent data via URL Generering af xml –Raw –Auto –Explicit Hent data via template Evt.
1 SQL2. 2 Funktioner der laver aggregerede beregninger Returnerer count() Antal rækker der opfylder bestemt betingelse min() Laveste værdi (eller null)
SQL – Oracle Relationsdatabase
SQL Jesper Tørresø DAB1 E oktober Punkter for i dag. SQL baggrund. Relationel algebra. Brug af VS2005.
Rapporter (Access, del 5). RHS – Informationsteknologi – Udgangspunkt Vi har oprettet en database Vi har defineret en eller flere tabeller, og.
1 SQL2. 2 Funktioner der laver aggregerede beregninger Returnerer count() Antal rækker der opfylder bestemt betingelse min() Laveste værdi (eller null)
Program Design – 4 Introduktion til PHP. Dagens lektion Hvad er PHP?  - og lidt historie Hvordan virker PHP? Grundlæggende PHP  Variable  Typer  Løkker.
W1b1 PC baseret analyse og simulering. w1b2 Definition Digital Elektronisk beregningsmaskine, der har intern hukommelse til lagring af program og mellem-regninger.
8.7 Security: Grant and revoke1 Sikkerhed 8.7 Security and User Authorization in SQL.
1. Database-systemer, introduktion
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
FEN KbP/seminar 1: Specifikationer/Notationen Q 1 Kontraktbaseret programmering: Seminar 1 Om specifikationer Algoritmenotationen Q.
Clustered Index Scan & Seek Af Anita (DM08204). Clustered Index Organiserer/strukturer Organiserer/strukturer Én pr. tabel Én pr. tabel Valg af indexeringskolonne.
DATATYPER. For at tilpasse hvert felt i databasen til dets formål og dermed øge funktionalitet 1 bit er tilstrækkelig til at angive køn (0/1) men for.
Intro Større applikationer, f. eks: Bogpris.dk. Nye bøger.
8.6 Transaktioner1 Transaktioner 8.6 Transactions in SQL.
Administratordelen - Sidsel Præsentation af administratordelen Sitemap Webstruktur Transaktioner Fremtid.
Procestræ under afvikling af cp init login shell cp cp src dest.
Tina Ratzer Hendes hjemmeside skal indeholde: Kontakt Forhandlerliste
FENNOEA IT - Databaser/SQL-Eval1 SQL: Opsamling Om SELECT Vurdering af SQL.
Intro Databaserne? Gik det som det skulle?. Databasestøttet webpublicering Forelæsning nr 8 Hvorfor data i en RDB (relationel database)? Databasemodellering.
ADO.NET Databaser SQL Client (SQL server 7 og senere) OleDb (en række incl. jet) ODBC MySql (ekstra driver skal instaleres) Oracle (XML dataset) Samme.
SQL Jesper Tørresø DAB1 E September Punkter for i dag. SQL baggrund. Relationel algebra. SQL koncept –Vises ved brug af VS2008.
8.5 JDBC1 JDBC 8.5 Java Database Connectivity. 8.5 JDBC2 JDBC introduktion, 393 JDBC er ikke en forkortelse for –Java Database Connectivity Sun har defineret.
Oprettelse af tabeller (Access, del 2)
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
SQL – Oracle Vigtige SQL sætninger Lektion 6 7. Semester.
Databaseadgang fra C#:
GP 4, 27/ Grundlæggende programmering Forår 2002 Forelæsning 4 onsdag 27/ kl. 9:15 – 12:00.
Database.
PHP.
Anmelderklub.dk. Struktur - Betina Indledning Hvad er brugervenlighed? Er Anmelderklub.dk brugervenlig? Hvordan kunne vi have testet anderledes? Hvad.
Sortering.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSortering.2 Sortering Vi hartidligere set at effektiv søgning forudsætter.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation.
Objekt-relationel DBMS1 4.5 The Object-Relational Model 9.4 User-Defined Types in SQL 9.5 Operations on Object-Relational Data Ullman: Object-Relational.
I o p o DAIMI, AU, December 1999Introducerende objektorienteret programmering14B.1 Sortering.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
Multiple processer på web-site Web- server filer Kunde 1 Kunde 2 Kunde p1p2p internet.
Variable og arrays Webintegrator HF1 PHP Object orienteret.
Database Some walk through lv/ Figures & some text from: © Pearson Education Limited 1995,
Solution Makers A/S – Gruppe 4 Lars Wolter Nils Martinsen Rasmus Seye Tobias Kjeldsen 1.
WebApi service part 2 Routning og Action Simpel test-client (javascript) Session og Application data.
1587 Server - Blandet miljø Webintegrator HF1
Videnskabeligt projekt
Tre lags arkitektur.
Simpel test-client (javascript) Session og Application data
Modellering og data Nyt forløb.
MySQL dat2sem2018Fall Modul 2 – uge 2.
Dat2sem2019 Bornholm Modul 2 – uge 2
Præsentationens transcript:

Stored Procedure Stored Procedure er programstumper, der gemmes i databasen og afvikles op databaseserveren på samme måde som forespørgsler. Med Stored Procedures kan man på den måde flytte basal behandlig op på serveren og opnå en både mere optimal og sikker afvikling. Fra C# programmer kan man aktivere Stored Proceures med Command objektets meroder: ExecuteNonQuery: Hvis der ikke ønskes brugt noget resultat fra den afviklede Stored Procedure. ExecuteScalar: Hvis der ønskes et enkelt resulat fra den afviklede Stored Procedure ExecuteReader: Hvis en Stored Procedure aflevere en forespørgsel som resultat og man ønsker at anvende denne. For at afvilke en Stored Procedure anvendes SQL udtrykket EXEC efterfulgt af parametrene, enten i som værdier i den declarerede rækkefølge med komma imellem eller ved at angive parameterens navn = tildelt værdi. Dette vises i de efterfølgende eksempler

Eksempler på Stored Procedure Primitiv beregnings procedure, der illustrere simple parametre og returværdier Der kan returneres én værdi. CREATE PROCEDURE BroekVaerdi ( @taeller int = 1, @naevner int = 1 ) AS BEGIN DECLARE @result int IF @naevner = 0 RETURN 0.0 END ELSE BEGIN set @result = @taeller / @naevner; RETURN @result

Eksempler på Stored Procedure Proceduren kaldes enten med parametrene i rækkefølge, som de er erklæret i proceduren, eller med navngivning. Resultater kan bruges lokalt i declarede variable. Hvis værdier skal bruges uden for SQL, kan de returneres i en forespørgsel. Denne forespørgsel læses fra C# med DataReader. DECLARE @tal1 int; DECLARE @tal2 int; EXEC @tal1 = BroekVaerdi 10, 2 EXEC @tal2 = BroekVaerdi @naevner=2, @taeller=10 SELECT @tal1, @tal2 /* resultat i en forespørgsel*/

Eksempler på Stored Procedure CREATE PROCEDURE FindPersonMedEfternavn ( @efternavn varchar(10) = '%' ) AS BEGIN select * from person where efternavn like @efternavn; END Eksempler på brug af proceduren EXEC FindPersonMedEfternavn “Larsen%” EXEC FindPersonMedEfternavn

Eksempler på Stored Procedure CREATE PROCEDURE OpretAfdeling /* med muligt autonr*/ ( @afdnr int, @afdnavn varchar(30) ) AS BEGIN insert into afdeling (Afdnr, AfdNavn) Values (@afdnr,@afdnavn); END Eksempler på brug af proceduren EXEC OpretAfdeling 10, ‘Afd ti’ EXEC OpretAfdeling @afdnr=10 @afdnavn=‘Afd ti’ EXEC OpretAfdeling @afdnavn=‘Afd ti’ @afdnr=10

Eksempler på Stored Procedure CREATE PROCEDURE OpretAfdeling2 /* med muligt autonr*/ ( @afdnr int = -1, @afdnavn varchar(30) ) AS BEGIN BEGIN TRANSACTION IF @afdnr < 0 select @afdnr = max(afdnr) from afdeling; set @afdnr = @afdnr +1; END insert into afdeling (Afdnr, AfdNavn) Values (@afdnr,@afdnavn); select * from afdeling WHERE AfdNr=@afdnr; COMMIT TRASACTION Eksempler på brug af proceduren EXEC OpretAfdeling2 @afdnr=10 @afdnavn=‘Afd ti’ EXEC OpretAfdeling2 @afdnavn=‘Afd auto’

Eksempler på Stored Procedure CREATE PROCEDURE OpretPeson /* I tabel hvor key er def. som identity autonummerering*/ ( @navn varchar(30) ) AS BEGIN insert into Person (Navn) Values (@navn); select * from Person WHERE Id=@@identity; END Eksempler på brug af proceduren EXEC OpretPerson ‘Bjørk’ EXEC OpretPerson @navn=‘Busch’

Eksempler på Stored Procedure CREATE PROCEDURE OpretKontoPostering ( @KontoID int, @Beloeb int, @Tekst varchar(30) ) AS BEGIN DECLARE @Saldo int BEGIN TRANSACTION INSERT INTO Transakion (kontoID, Beloeb, Tekst) Values (@KontoID@Beloeb,@Tekst); UPDATE Konto SET Saldo=Saldo+@Beloeb WHERE KontoID=@KontoID; SELECT @Saldo = Saldo FROM konto WHERE KontoID=@KontoID; IF @Saldo < 0 ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION END Eksempel på brug af proceduren EXEC OpretKontoPostering @KontoID=1002 @Beloeb=100 @Tekst=‘kontantudbetaling‘

Eksempler på Stored Procedure CREATE PROCEDURE RetPersonNavn2 ( @PersonNr int, @Fornavn varchar(30), @Efternavn varchar(30), @OldFornavn varchar(30), @OldEfternavn varchar(30) ) AS BEGIN DECLARE @XFornavn varchar (30) DECLARE @XEfternavn varchar (30) DECLARE @outtable as table /* temporær tabel til rettede poster – før ændring */ Fornavn varchar(30) , Efternavn varchar(30) BEGIN TRANSACTION UPDATE Person SET Fornavn=@Fornavn , Efternavn=@Efternavn OUTPUT deleted.Fornavn, deleted.Efternavn INTO @outtable /* her fås gamle poster*/ WHERE PersonNr=@PersonNr; SELECT @XFornavn = Fornavn, @XEfternavn= Efternavn FROM @outtable; IF @XFornavn = @OldFornavn AND @XEfternavn = @OldEfternavn COMMIT TRANSACTION RETURN 1 END ELSE print 'Roolback da data var ændret før opdatering' ROLLBACK TRANSACTION RETURN 0 Eksempel på brug af proceduren EXEC RetPersonFornavn 5, 'NyFornavn', ‘NyEfternavn‘, ‘GlFornavn’, ‘GlEfternavn Denne løsning sikre at præcis de felter vi ændrer ikke er rettet af andre undervejs. Dette er en “stærkere” løsning end “bare” at sikre at rækken ikke er ændret.