datenbankzugriff über isapi-webservererweiterungen präsentation zur belegarbeit für vorlesung...

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

Upload: gairovald-lederer

Post on 05-Apr-2015

108 views

Category:

Documents


2 download

TRANSCRIPT

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

Datenbankzugriff überISAPI-Webservererweiterungen

Präsentation zur Belegarbeit für

Vorlesung „Datenbanken II“

Andrei Scheibner (WF97w2)

Page 2: Datenbankzugriff über ISAPI-Webservererweiterungen Präsentation zur Belegarbeit für Vorlesung Datenbanken II Andrei Scheibner (WF97w2)

ISAPI-Webservererweiterungen

Page 3: Datenbankzugriff über ISAPI-Webservererweiterungen Präsentation zur Belegarbeit für Vorlesung Datenbanken II Andrei Scheibner (WF97w2)

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

Page 4: Datenbankzugriff über ISAPI-Webservererweiterungen Präsentation zur Belegarbeit für Vorlesung Datenbanken II Andrei Scheibner (WF97w2)

Extension Control BlockcbSize: 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

Page 5: Datenbankzugriff über ISAPI-Webservererweiterungen Präsentation zur Belegarbeit für Vorlesung Datenbanken II Andrei Scheibner (WF97w2)

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>';

Page 6: Datenbankzugriff über ISAPI-Webservererweiterungen Präsentation zur Belegarbeit für Vorlesung Datenbanken II Andrei Scheibner (WF97w2)

HttpExtensionProc (Beispiel)

ResStr:=Format(

'HTTP/1.0 200 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;

Page 7: Datenbankzugriff über ISAPI-Webservererweiterungen Präsentation zur Belegarbeit für Vorlesung Datenbanken II Andrei Scheibner (WF97w2)

Vorteile• 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

Page 8: Datenbankzugriff über ISAPI-Webservererweiterungen Präsentation zur Belegarbeit für Vorlesung Datenbanken II Andrei Scheibner (WF97w2)

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

Page 9: Datenbankzugriff über ISAPI-Webservererweiterungen Präsentation zur Belegarbeit für Vorlesung Datenbanken II Andrei Scheibner (WF97w2)

Datenbankzugriff mittels ADO und OLE DB

Page 10: Datenbankzugriff über ISAPI-Webservererweiterungen Präsentation zur Belegarbeit für Vorlesung Datenbanken II Andrei Scheibner (WF97w2)

ADO-Bibliothek (Version 2.0)

Page 11: Datenbankzugriff über ISAPI-Webservererweiterungen Präsentation zur Belegarbeit für Vorlesung Datenbanken II Andrei Scheibner (WF97w2)

Datenbankstruktur

Page 12: Datenbankzugriff über ISAPI-Webservererweiterungen Präsentation zur Belegarbeit für Vorlesung Datenbanken II Andrei Scheibner (WF97w2)

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

Page 13: Datenbankzugriff über ISAPI-Webservererweiterungen Präsentation zur Belegarbeit für Vorlesung Datenbanken II Andrei Scheibner (WF97w2)

Entwicklungsumgebung• Borland Delphi 4.0

Laufzeitumgebung• Windows NT4.0 (2000)

• Oracle 8.1.5 (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