Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Huncberct Gerth Geändert vor über 11 Jahren
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); ?>
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.