Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Datenbankzugriff über ISAPI-Webservererweiterungen

Ähnliche Präsentationen


Präsentation zum Thema: "Datenbankzugriff über ISAPI-Webservererweiterungen"—  Präsentation transkript:

1 Datenbankzugriff über ISAPI-Webservererweiterungen
Präsentation zur Belegarbeit für Vorlesung „Datenbanken II“ Andrei Scheibner (WF97w2)

2 ISAPI-Webservererweiterungen

3 Funktionen und Datenstrukturen
GetExtensionVersion HttpExtensionProc Extension Control Block (ECB) Informationen über die Client-Anfrage und die Antwort des Servers Zeiger auf Callback-Funktionen GetServerVariable ReadClient WriteClient ServerSupportFunction

4 Extension Control Block
cbSize: DWORD; // size of this struct. dwVersion: DWORD; // version info of this spec ConnID: HCONN; // Context number not to be modified! dwHttpStatusCode: DWORD; // HTTP Status code // null terminated log info specific to this Extension DLL lpszLogData: array [0..HSE_LOG_BUFFER_LEN-1] of Char; lpszMethod: PChar; // REQUEST_METHOD lpszQueryString: PChar; // QUERY_STRING lpszPathInfo: PChar; // PATH_INFO lpszPathTranslated: PChar; // PATH_TRANSLATED cbTotalBytes: DWORD; // Total bytes indicated from client cbAvailable: DWORD; // Available number of bytes lpbData: Pointer; // pointer to cbAvailable bytes lpszContentType: PChar; // Content type of client data

5 HttpExtensionProc (Beispiel)
function HttpExtensionProc(var ECB: TEXTENSION_CONTROL_BLOCK): DWORD; stdcall; var ResStr: string; StrLen: DWORD; begin ECB.lpszLogData:='Delphi-DLL'; ResStr:='<HTML><HEAD><TITLE>ISAPI-Hallo</TITLE></HEAD>'+ '<BODY><H1>ISAPI-Hallo!!</H1>'+ FormatDateTime('d. mmmm yyyy, hh:nn:ss',Now())+ '</BODY></HTML>';

6 HttpExtensionProc (Beispiel)
ResStr:=Format( 'HTTP/ OK'#13#10'Content-Type: text/html'#13#10+ 'Content-Length: %d'#13#10'Content:'#13#10#13#10'%s', [Length(ResStr), ResStr]); StrLen:=Length(ResStr); ECB.dwHTTPStatusCode:=200; ECB.WriteClient(ECB.ConnID,Pointer(ResStr),StrLen,0); HttpExtensionProc:=HSE_STATUS_SUCCESS; end;

7 Vorteile Nachteile Liegen in kompilierter Form vor
Abarbeitung verschiedener Anfragen in Threads innerhalb eines Prozesses Status bleibt zwischen Aufrufen erhalten (abhängig vom Webserver) Nachteile Nur in Windows-Umgebung ausführbar Schlecht änderbar Höherer Entwicklungsaufwand

8 OLE DB und ADO Object Linking and Embedding for Databases
COM-basiert ermöglicht Zugriff auf beliebige Datenbanken über einen Provider ActiveX Data Objects Frontend für OLE DB Sammlung von Objekten für den Datenbankzugriff

9 Datenbankzugriff mittels ADO und OLE DB

10 ADO-Bibliothek (Version 2.0)

11 Datenbankstruktur

12 Funktionalität der Anwendung
Anmeldung/Abmeldung Suchen nach Personen, Rassen, Planeten, Raumschiffen Änderung der Einträge von Personen, Rassen, Planeten, Raumschiffen Hinzufügen von neuen Einträgen für Personen, Rassen, Planeten, Raumschiffe

13 Entwicklungsumgebung
Borland Delphi 4.0 Laufzeitumgebung Windows NT4.0 (2000) Oracle (8.1.7) Webserver OmniHTTPd 2.0 (dito, Internet Information Server 5.0) ADO 2.0 Microsoft OLE DB Provider für Oracle (dito, Oracle Provider für OLE DB) javascriptfähiger Webbrowser


Herunterladen ppt "Datenbankzugriff über ISAPI-Webservererweiterungen"

Ähnliche Präsentationen


Google-Anzeigen