Vakgroep Telecommunicatie en Informatieverwerking 1 Toegangsmogelijkheden voor applicaties Hoofdstuk 8 Database, Document and Content Management.

Slides:



Advertisements
Verwante presentaties

Advertisements



WEB toepassingen. Wat is een WEB toepassing of applicatie t.t.z... een WEB applicatie is een applicatieprogramma welke je via internet kunt gebruiken,
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)
PHP & MYSQL LES 03 PHP & DATABASES. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Arduino project.
Gestructureerd programmeren in C
Instructie Programmeren Task 8 5JJ70. PAGE 2 Task 8: Double Linked List Het doel van deze opdracht is: Het opbouwen van een tweetal klassen, die samen.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
W ORD P RESS TECHNISCHE ACHTERGROND Kris Cardinaels 26 maart 2013.
Inhoud Kenmerken ODBC HTML & PHP Inlogfunctie. Inhoud Kenmerken ODBC HTML & PHP Inlogfunctie.
VBA en VBS Een introductie.
SQL injections en meer... PERU. web application vulnerabilities Cross Site Scripting (21.5%) SQL Injection (14%) PHP includes (9.5%) Buffer overflows.
Hoofdstuk 6: Controle structuren
VHDL Peter Slaets KHLim Functies en procedures Functies –type conversie functies »bit vector to integer en omgekeerd –verkorte componenten met maar 1 output.
GWT-RPC Bram Vandeputte. Wat is GWT-RPC Raamwerk voor envoudige client-server uitwisseling van Java Objecten. Gebaseerd op de Java Servlet architectuur.
Relationele databases: Fysiek databaseontwerp en SQL
Frank Stalpers en Ad Baars
Visual Basic .NET voor studenten
Consoleprogramma’s Hoofdstuk 19. Visual Basic.NET voor studenten2 In dit hoofdstuk … Hoe consoletoepassingen maken In- en uitvoer bij consoleprogramma’s.
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
Java en BlueJ Een goed idee?.
Introductie in: PHP. Groei in webapplicaties Groei in webapplicaties Het ontstaan van PHP Het ontstaan van PHP De client-serverarchitectuur De client-serverarchitectuur.
Workshop PHP Een productencatalogus Met database.
Java DataBase Connectivity
Datamodellen en databasemodellen
P. 1 Vakgroep Informatietechnologie Scanf voorbeeld #include int main(void) { int i=-1,j=-1,k=-1,l=-1; int b; b=scanf("%d %d %d %d",&i,&j,&k,&l); printf("res=%d.
Deel I: Programmeertaal C 6. Arrays en Pointers
Hoofdstuk 16 en 19 PHP en MYSQL
Presenteert:.
Deel 9: Relationele Databases: Oef. & 1e client- server app 1 Internetapplicaties Deel 9: Relationele Databases: Oefeningen en 1e client- serverapplicatie.
Deel XIII Eerste echte e-commerce applicatie (iteraties + impl ) 1 Internetapplicaties Deel 13: Eerste echte e-commerce applicatie: Enkele iteraties met.
Deel X: JSP + Java + database 1 Internetapplicaties Deel 10: JSP + Java + database: Client Server via http.
Service Oriented Architecture
Microsoft Operations Manager & Scripting
Windows Applicaties Bouwen met Visual Studio.NET Sijmen Koffeman Development Consultant Microsoft.
Keuzetraject Software Ontwikkeling. Marktvraag Mark Heeren (ceo CSC Benelux): –Nieuwe mensen aannemen wordt weer moeilijk, men stelt meer eisen over auto.
PHP & MYSQL LES 04 CMS: BEST PRACTICE. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Tircms02-p les 4 Preprocessor In- en uitvoer Diversen.
SQL ( SERVER ) Les #02: T-SQL. A GENDA Herhaling les 4 Views SELECT…INTO Beheren van tabellen: CREATE ALTER DROP Opdracht voor de volgende les.
Portal Solution. IVS Portal solution 100 % developed by IVS Created in Microsoft.Net environment Based on SQL back-end server Single Sign-on to multiple.
Les 3 Basisbouwstenen (deel 2) Programmeren met Visual Basic Karl Moens.
Hoofdstuk 3 - Conditionele logica
Tircms02-p les 3 Functies Strings Structuren. Functies 1. main() 2. { int k; k = 10 ; printf(“%d\n”,fac(k)); } 3. int fac(n) int n; 4. { int f; f= 1;
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Programmeercursus O.O.P. met VISUAL BASIC.NET
Datamodellering en –verwerking 8C020 college 9. Terugblik college week 8 Terugkoppeling opdracht deel A Toepassingen van Petri-netten in biologie Oefeningen.
AWK A Pattern scanning and processing language made by Aho Weinberger Kernighan and explained by Albert Montijn.
Vakgroep Telecommunicatie en Informatieverwerking 1 Relationele databases: Het relationeel databasemodel Hoofdstuk 4 Database, Document and Content Management.
Java & het Web Programma: Databases (jdbc, JNDI, ORM, JPA)
1 JDBC Java DataBase Connectivity. 2 Inhoud Introductie Connectie DriverManager Statement ResultSet PreparedStatement CallableStatement Mapping SQL on.
Wat is SQL (1)? SQL (Structured Query Language):  is een zeer krachtige taal met een beperkt vocabulaire (aantal ‘woorden’)  is declaratief (‘WAT’ niet.
SQL Performance Analyzer Inschatten performance impact van wijzigingen Bram van der Vos
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
LPI 1.05 Marcel Nijenhof. Agenda ● Customize and use the shell environment ● Customize or write simple scripts ● SQL data management.
Software Development fundamentals
Michaël Hompus Principal developer,
Software Development fundamentals
Software Development fundamentals
SQL Les February 2019.
SQL Les 7 24 February 2019.
Database connect formulieren 1 februari 2016.
SQL Les 1 5 April 2019.
SQL Les 6 14 April 2019.
SQL Les 9 12 May 2019.
SQL Les May 2019.
Software Development fundamentals
Software Development fundamentals
Transcript van de presentatie:

Vakgroep Telecommunicatie en Informatieverwerking 1 Toegangsmogelijkheden voor applicaties Hoofdstuk 8 Database, Document and Content Management

Vakgroep Telecommunicatie en Informatieverwerking 2 Overzicht Voorbeschouwing Ingebouwde API’s ‘Call-level’-API’s Databasetoegang via webapplicaties Databasetoegang vanuit J2EE- en.NET- raamwerken

Vakgroep Telecommunicatie en Informatieverwerking 3 Overzicht Voorbeschouwing Ingebouwde API’s ‘Call-level’-API’s Databasetoegang via webapplicaties Databasetoegang vanuit J2EE- en.NET- raamwerken

Vakgroep Telecommunicatie en Informatieverwerking 4 Voorbeschouwing Applicatieprogramma-interface (API) –Omschrijving Een API voor databasetoegang zorgt voor de verbinding of interface tussen de applicatie en het dbms. Het wordt door de applicatie gebruikt om instructies door te geven aan het dbms en wordt vice versa door het dbms gebruikt om resultaten en status- en foutcodes door te geven aan de applicatie.

Vakgroep Telecommunicatie en Informatieverwerking 5 Voorbeschouwing opzetten van dbms-connectie API selecteren van database(component) doorgeven van instructie ophalen van resultaat afsluiten van dbms-connectie APPLICATIE DBMS –Hoofdtaken

Vakgroep Telecommunicatie en Informatieverwerking 6 Overzicht Voorbeschouwing Ingebouwde API’s ‘Call-level’-API’s Databasetoegang via webapplicaties Databasetoegang vanuit J2EE- en.NET- raamwerken

Vakgroep Telecommunicatie en Informatieverwerking 7 Databasetoegang via ingebouwde API’s –Ingebouwde API’s Bij een ingebouwde API worden de instructies voor databasetoegang integraal ingebouwd in de applicatie- code. De uitvoering van de “verrijkte” applicatiecode bewerkstelligt de interactie met het dbms, dat op zijn beurt verantwoordelijk is voor de correcte afhandeling van de instructies en de feitelijke databasetoegang.

Vakgroep Telecommunicatie en Informatieverwerking 8 Databasetoegang via ingebouwde API’s API dbms database hosttaal applicatie Precompilatie!

Vakgroep Telecommunicatie en Informatieverwerking 9 Databasetoegang via ingebouwde API’s –“Embedded” SQL Hosttaal Precompilatie Ingebedde SQL-instructies Hostvariabelen Foutbehandeling –SQLCODE Cursors –Declare –Open –Fetch –Close

Vakgroep Telecommunicatie en Informatieverwerking 10 Databasetoegang via ingebouwde API’s … EXEC SQL BEGIN DECLARE SECTION; /* declaratie van hostvariabelen */ char Schilderijnaam [30]; int Periode; EXEC SQL END DECLARE SECTION; … printf(“Geef periode: “); scanf(“%d”, Periode); EXEC SQL DECLARE SchilderijCursor CURSOR FOR /* declaratie van cursor */ SELECT Naam, Periode FROM Schilderij WHERE Periode=:Periode; EXEC SQL OPEN SchilderijCursor; /*openen van cursor*/ while (SQLCODE == 0) { /* voer uit zolang er nog te behandelen tuples zijn */ EXEC SQL FETCH SchilderijCursor INTO :Schilderijnaam, :Periode; /* ophalen van cursor */ printf(“Naam van schilderij: %s\n”, Schilderijnaam); /* afdrukken resultaten */ printf(“Periode van schilderij: %d\n”, Periode); } EXEC SQL CLOSE SchilderijCursor; /* afsluiten van cursor */ …

Vakgroep Telecommunicatie en Informatieverwerking 11 Databasetoegang via ingebouwde API’s Dynamische SQL –Late binding –SQLJ Java … EXEC SQL BEGIN DECLARE SECTION; /* declaratie van hostvariabelen */ char Aanpassing [256]; EXEC SQL END DECLARE SECTION; … printf(“Geef de uit te voeren updateinstructie: “); scanf(“%s”, Aanpassing); EXEC SQL PREPARE Gebruikersinstructie FROM :Aanpassing; /* klaarmaken van instructie */ EXEC SQL EXECUTE Gebruikersinstructie; /*doorgeven van instructie aan dbms*/ …

Vakgroep Telecommunicatie en Informatieverwerking 12 Overzicht Voorbeschouwing Ingebouwde API’s ‘Call-level’-API’s Databasetoegang via webapplicaties Databasetoegang vanuit J2EE- en.NET- raamwerken

Vakgroep Telecommunicatie en Informatieverwerking 13 Databasetoegang via ‘call’-level API’s –‘Call-level’ API’s Bij een ‘call-level’ API gebeurt de databasetoegang via een aparte software die zowel communiceert met de applicatie als met het dbms. Binnenkomende functie- oproepen van de applicatie worden door de software omgezet naar een intern formaat dat voor uitvoering wordt doorgegeven aan het dbms. Teruggegeven resultaten, status- en foutcodes worden door de software omgezet naar een formaat dat door de applicatie kan worden gelezen en verwerkt.

Vakgroep Telecommunicatie en Informatieverwerking 14 Databasetoegang via ‘call’-level API’s dbms database APIapplicatie Geen precompilatie!

Vakgroep Telecommunicatie en Informatieverwerking 15 Databasetoegang via ‘call’-level API’s –ODBC en JDBC Open DataBase Connectivity Architectuur dbms 1 databronnen applicatie … dbms 2 dbms n applicatie-interface driver- beheerder driver 1 driver 2 driver n …

Vakgroep Telecommunicatie en Informatieverwerking 16 Databasetoegang via ‘call’-level API’s Gegevenstoegang bij ODBC –Initialisatie van de applicatie-interface: SQLAllocEnv()  maakt een ‘environment handle’ aan –Initialisatie van een connectie: SQLAllocConnect()  maakt een ‘connection handle’ aan –Connecteren met een databron: SQLConnect() –Initialisatie van een werkomgeving: SQLAllocStmt()  maakt een ‘statement handle’ aan –Doorgeven en uitvoeren van SQL-instructie: SQLExecDirect() –SQL-instructie voorbereiden: SQLPrepare() en SQLExecute() –Status- en foutinformatie opvragen: via statement handle –Resultaten ophalen: SQLFetch()

Vakgroep Telecommunicatie en Informatieverwerking 17 Databasetoegang via ‘call’-level API’s –Vrijgeven van gereserveerde geheugenruimte: SQLFreeStmt(), SQLFreeConnect() en SQLFreeEnv() –Afsluiten van een connectie met een databron: SQLDisconnect() Gegevenstoegang bij JDBC –Opladen van een JDBC-driver: forName() –Aanmaken van een ‘connection’-object en connecteren met een databron: getConnection() –Aanmaken van een ‘statement’-object: createStatement() –Uitvoeren van een DDL-, toevoeg-, aanpassing- of verwijderinstructie: executeUpdate() –Uitvoeren van een opzoekinstructie: executeQuery() –Ophalen resultaat uit een ‘ResultSet’-object: next(), previous() –Foutbehandeling: SQLException en getMessage()

Vakgroep Telecommunicatie en Informatieverwerking 18 Databasetoegang via ‘call’-level API’s –SQL/CLI (Call Level Interface) Uitbreiding van ODBC ‘Environment’-, ‘connection’- en ‘statement’-records Metadata: ‘description’-records Voorbeeld

Vakgroep Telecommunicatie en Informatieverwerking 19 Databasetoegang via ‘call’-level API’s #include sqlcli.h; /* inladen van SQL/CLI functiebibliotheek */ void AfdrukkkenSchilderijen() {short Periode; char Schilderijnaam [30]; SQLHENV mijnOmgeving; /* declaratie van variabele van het ‘environment’-type */ SQLHDBC mijnConnectie; /* declaratie van variabele van het ‘connectie’-type */ SQLHSTMT mijnStatement; /* declaratie van variabele van het ‘statement’-type */ SQLRETURN status1, status2, status3, status4; /* declaratie van statusvariabelen */ status1 = SQLAllocHandle(SQL_Handle_Env, SQL_NULL_Handle, &mijnOmgeving); if (!status1) status2 = SQLAllocHandle(SQL_Handle_DBC, mijnOmgeving, &mijnConnectie) else exit; if (!status2) status3 = SQLConnect(mijnConnectie, “Schilderkunstdatabase”, SQL_NTS, “Guy”, SQL_NTS, MijnPaswoord”, SQL_NTS) else exit; /* SQL_NTS duidt aan dat voorafgaande string “null terminated” is */ if (!status3) status4 = SQLAllocHandle(SQL_Handle_Stmt, mijnConnectie, &mijnStatement) else exit; SQLPrepare(mijnStatement, “SELECT Naam, Periode FROM Schilderij WHERE Periode = ?”, SQL_NTS); printf(“Geef periode: “); scanf(“%d”, Periode); SQLBindParameter(mijnStatement, 1, SQL_PARAM_INPUT, SQL_C_SHORT, SQL_SMALLINT, 0, 0, &Periode, SQL_SETPARAM_VALUE_MAX, NULL); status1 = SQLExecute(mijnStatement); if (!status1) { SQLBindCol(mijnStatement, 1, SQL_C_CHAR, &Schilderijnaam, 30, NULL); SQLBindCol(mijnStatement, 2, SQL_C_SHORT, &Periode, 0, NULL); status2 = SQLFetch(mijnStatement); while (!status2) { printf(Schilderijnaam, Periode); status2 = SQLFetch(mijnStatement); } } }

Vakgroep Telecommunicatie en Informatieverwerking 20 Databasetoegang via ‘call’-level API’s –OLE DB en ADO Object Linking and Embedding for DataBases C++ COM-objecten Betere toegankelijkheid: ADO (ActiveX Data Objects) Hoofdcomponenten –Data consumers –Data providers –Service providers

Vakgroep Telecommunicatie en Informatieverwerking 21 Databasetoegang via ‘call’-level API’s databronnen … dbms  data consumers data consumers ADO OLE DB service provider 1 … service provider 2 service provider n data provider 1 … data provider 2 data provider m ODBC

Vakgroep Telecommunicatie en Informatieverwerking 22 Databasetoegang via ‘call’-level API’s Werking –‘Connection’-objecten –‘Command’-objecten –‘Recordset’-objecten Voorbeeld

Vakgroep Telecommunicatie en Informatieverwerking 23 Databasetoegang via ‘call’-level API’s … dim mijnPeriode as Object set mijnConnectie = Server.CreateObject(“ADODB.connection”) mijnConnectie.Open “Schilderkunstdatabase” set mijnCommando = Server.CreateObject(“ADODB.command”) mijnCommando.CommandText = “SELECT Naam, Periode FROM Schilderij WHERE Periode = ?” set mijnParameter = mijnCommando.CreateParameter(, adInteger, adParamInput) mijnPeriode = InputBox(“Geef periode:”) mijnParameter.Value=mijnPeriode set mijnRecordset = Server.CreateObject(“ADODB.recordset”) mijnRecordset.Open mijnCommando, mijnConnectie mijnRecordset.MoveFirst do until mijnRecordset.EOF ToonResultaat(mijnRecordset.Fields(0).Value & “:” & mijnRecordset.Fields(1).Value) mijnRecordset.MoveNext loop mijnRecordset.Close mijnConnectie.Close …

Vakgroep Telecommunicatie en Informatieverwerking 24 Overzicht Voorbeschouwing Ingebouwde API’s ‘Call-level’-API’s Databasetoegang via webapplicaties Databasetoegang vanuit J2EE- en.NET- raamwerken

Vakgroep Telecommunicatie en Informatieverwerking 25 Databasetoegang via webapplicaties –ASP, PSP en PHP Werken met dynamische webpagina’s Databasetoegang vanuit webtoepassingen via ‘Call-level’ API’s dbms database API webserver   web-clients   

Vakgroep Telecommunicatie en Informatieverwerking 26 Databasetoegang via webapplicaties Technieken om dynamische webpagina’s te programmeren –ASP (Active Server Pages) »gebruik van ADO –JSP (Jave Server Pages) »gebruik van ADO –PHP-scriptaal »gebruik van ODBC »Gebruik van de PHP-uitbreiding PEAR (PHP Extension and Add-on Repository)

Vakgroep Telecommunicatie en Informatieverwerking 27 Overzicht Voorbeschouwing Ingebouwde API’s ‘Call-level’-API’s Databasetoegang via webapplicaties Databasetoegang vanuit J2EE- en.NET- raamwerken

Vakgroep Telecommunicatie en Informatieverwerking 28 Databasetoegang via J2EE en.NET –Softwareontwikkelingsraamwerken J2EE (Java 2 platform Enterprise Edition) –Maakt gebruik van JDBC.NET –Maakt gebruik van OLE DB en ADO »Samengebundeld in ADO.NET »Bevat ook een ODBC.NET data provider