Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Datenbankapplikationen 9.1MS Visio 9.2MS Access 9.3Embedded SQL 9.4JDBC 9.5Cold Fusion 9.6PHP.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Datenbankapplikationen 9.1MS Visio 9.2MS Access 9.3Embedded SQL 9.4JDBC 9.5Cold Fusion 9.6PHP."—  Präsentation transkript:

1 1 Datenbankapplikationen 9.1MS Visio 9.2MS Access 9.3Embedded SQL 9.4JDBC 9.5Cold Fusion 9.6PHP

2 2 MS Visio Studenten PKMatrNr Name Semester GebDatum Vorlesungen PKVorlNr Titel SWS FK1gelesenVon hoeren PK,FK1MatrNr PK,FK2VorlNr Professoren PKPersNr Name Rang U1Raum Gebdatum voraussetzen PK,FK2Vorgaenger PK,FK1Nachfolger Assistenten PKPersNr Name Fachgebiet FK1Boss GebDatum pruefen PK,FK2MatrNr PK,FK3VorlNr FK1PersNr Note

3 3 MS Access Frontend per ODBC Queries interaktiv Queries in SQL-Form Beziehungen Reports Formulare

4 4 Embedded SQL Host-Programm: hallo.pc SQL Include Files Runtime Library C Include Files Quell-Programm: hallo.c Objekt-Programm: hallo.o Ausführbares Programm: hallo.exe Pre-CompilerC-Compiler C-Linker

5 5 Hostvariable int persnr; // Personalnummer char name[20]; // Name char rang[3]; // Rang int raum; // Raum char gebdatum[17]; // Geburtsdatum short raum_ind; // Raum-Indikator Innerhalb von SQL-Statements: Doppelpunkt (:) voranstellen !

6 6 Select EXEC SQL SELECT persnr, raum INTO :persnr, :raum INDICATOR :raum_ind FROM Professoren WHERE PersNr = 2125; if (raum_ind == -1) printf("Personalnummer %d ohne Raumangabe \n", persnr);

7 7 Cursor deklarieren EXEC SQL DECLARE C1 CURSOR FOR SELECT PersNr, Name, Rang, Raum, Gebdatum FROM Professoren WHERE Rang = :eingaberang;

8 8 Cursor füllen + transferieren EXEC SQL OPEN C1; EXEC SQL FETCH C1 INTO :persnr, :name, :rang, :raum INDICATOR :raum_ind, :gebdatum;

9 9 Inhalt abarbeiten while (SQLCODE == 0) printf("%d %s %s", persnr, name, rang); if(raum_ind == -1) printf(" ???"); else printf("%4d", raum); printf(" %s\n", gebdatum); EXEC SQL FETCH C1 INTO :persnr, :name, :rang, :raum:raum_ind, :gebdatum; } EXEC SQL CLOSE C1;

10 10 Beispiel.sqc, Teil 1 void ErrorHandler (void); #include // Standardheader int main ( int argc, char** argv, char** envp) { EXEC SQL BEGIN DECLARE SECTION; // Deklarationen-Start char serverDatenbank[] = "arnold.uni"; // Server + DB char loginPasswort[] = "erika.mustermann"; // User + Passwort int persnr; // Personalnummer char name[20]; // Name char rang[3]; // Rang int raum; // Raum char gebdatum[17]; // Geburtsdatum short raum_ind; // Raum-Indikator char eingaberang[3]; // Eingabe vom User EXEC SQL END DECLARE SECTION; // Deklarationen-Ende

11 11 Beispiel.sqc, Teil 2 EXEC SQL WHENEVER SQLERROR CALL ErrorHandler(); // Fehlermarke EXEC SQL CONNECT TO :serverDatenbank // Verbindung aufbauen USER :loginPasswort; printf("Bitte Rang eingeben: "); // gewuenschten Rang scanf("%s", eingaberang); // vom user holen printf("Mit Rang %s gespeichert:\n", eingaberang); EXEC SQL DECLARE C1 CURSOR FOR // Cursor vereinbaren SELECT PersNr, Name, Rang, Raum, Gebdatum // SQL-Statement FROM Professoren WHERE Rang = :eingaberang; EXEC SQL OPEN C1; // Cursor oeffnen EXEC SQL FETCH C1 INTO :persnr, :name, :rang, // Versuche eine Zeile :raum INDICATOR :raum_ind, :gebdatum; // zu lesen

12 12 Beispiel.sqc, Teil 3 while (SQLCODE == 0) // SOLANGE erfolgreich { printf("%d %s %s", persnr, name, rang); // Tupel ausgeben if(raum_ind == -1) // FALLS keine Raumnr printf(" ???"); // Platzhalter drucken else printf("%4d", raum); // SONST Raumnr printf(" %s\n", gebdatum); // letztes Attribut EXEC SQL FETCH C1 INTO :persnr, :name, :rang, // naechste Zeile :raum:raum_ind, :gebdatum; } EXEC SQL CLOSE C1; // Cursor schliessen EXEC SQL DISCONNECT ALL; // Verbindung beenden return (0); }

13 13 Beispiel.sqc, Fehlerroutine void ErrorHandler (void) { printf("In Error Handler:\n"); printf(" SQL Code = %li\n", SQLCODE); printf(" SQL Server Message %li: '%Fs'\n", SQLERRD1, SQLERRMC); }

14 14 JDBC Java-Programm mit Klassen aus java.sql Erzeuge Java-Code für Application Applet Treiber laden und Verbindung herstellen SQL-Statement ausführen Ergebnis verarbeiten

15 15 JDBC Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con = DriverManager.getConnection (jdbc:odbc:dbs2001,erika,mustermann); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery (select * persnr, name from professoren); while (rs.next()) { int x = rs.getInt(persnr); String s = rs.getString(name); System.out.println(Professor +s+ hat Nr. +x); }

16 16 ColdFusion

17 17 PHP Personal Home Page Server-basierte Scriptsprache Integriert in HTML-Seiten

18 18 frage.html Frage Bitte geben Sie Ihre SQL-Query ein:

19 19 antwort.html (Teil 1) Antwort Antwort ermittelt durch PHP-Script: <?php $con = mssql_connect("MSSQL","erika","mustermann"); mssql_select_db("uni",$con); $rs = mssql_query($frage, $con); $z = mssql_num_rows($rs); $s = mssql_num_fields($rs);

20 20 antwort.html (Teil 2) echo " \n"; echo " "; for ($i=0 ; $i<$s ; ++$i) { $name = mssql_fetch_field($rs,$i); echo " $name->name "; } echo " "; while ($tupel = mssql_fetch_array($rs)) { echo " "; for ($i=0 ; $i<$s ; ++$i) { echo " $tupel[$i] "; } echo " "; } echo " \n"; mssql_free_result($rs); mssql_close($con); ?>


Herunterladen ppt "1 Datenbankapplikationen 9.1MS Visio 9.2MS Access 9.3Embedded SQL 9.4JDBC 9.5Cold Fusion 9.6PHP."

Ähnliche Präsentationen


Google-Anzeigen