De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


Presentatie over: "Vakgroep Telecommunicatie en Informatieverwerking 1 Toegangsmogelijkheden voor applicaties Hoofdstuk 8 Database, Document and Content Management."— Transcript van de presentatie:

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

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

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

4 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.

5 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

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

7 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.

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

9 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

10 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 */ …

11 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*/ …

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

13 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.

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

15 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 …

16 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()

17 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()

18 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

19 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); } } }

20 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

21 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

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

23 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 …

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

25 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   

26 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)

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

28 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


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

Verwante presentaties


Ads door Google