Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf .

30
Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf http://www.protech-ndh.de http://www.sdctec.net

Transcript of Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf .

Page 1: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Softwareentwicklungmit Oracle Lite & Delphi

Henry Wolf

http://www.protech-ndh.de http://www.sdctec.net

Page 2: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Was ist Oracle Lite I

-sehr schlanke , single-User Objekt-Relationale Datenbank-entwickelt für Mobile Endgeräte ( Laptop, Palm etc. )-benötigt < 1MB RAM und < 3MB Plattenplatz-voller SQL und Java-Support ( kein PL/SQL )-ODBC und JDBC-Schnittstellen-16 Sessions parallel möglich-Unterstützt Replikation via Datei , SQL*Net , HTTP und OMA ( Oracle Mobil Agent )-Verfügbar u.a. unter Windows 95/98/NT/2000/XP, PlamOS Windows CE u.a.

Page 3: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Was ist Oracle Lite II – Kompatibilität mit „Großer“ DB

-keine Unterstützung von PL/SQL, Trigger und Proceduren in Java-Single.User Datenbank , keine Unterstützung von Serverfunktionaltäten wie SQL*Net Listener , CORBA ORB u.a.-ORACLE Lite speichert Alles in Objekt-Form , „Relationaler Layer“-nur begrenzt Dictionary-Views

Page 4: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Einordnung von Oracle Lite

-Java Datenbank für verschiedenen Hardwareplattformen ( Mobile Endgeräte )-Als Standalone-Datenbank vergleichbar mit Local ADS, locales Interbase

-> Vorteil : Code-Kompatibilität mit großer ORACLE-DB Replikation / Synchronisation mit „zentralen“ Oracle-Datenbanken Softwareverteilung über Web

-> Wermutstropfen aus Delphianer-Sicht : fehlende PL/SQL Unterstützung -> JAVA

Page 5: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Mobil Sync & Mobil Server

Komponenten MobilSync – Syncronisation von Oracle LiteDatenbanken mit Zentralen u.a.

Komponente Mobil Server – Distribution , Synchronisation undVerteilung von Oracle Lite Datenbanken und Applikationen

Page 6: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Wichtige Tools für Oracle Lite I

1. Createdb - Anlegen einer Datenbank2. Removedb - Löschen einer Datenbank3. Migrate - Migration einer älteren DB-

Version4. Decryptdb - Aufheben der Verschlüsselung

einer Oracle Lite Datenbank5. Encryptdb - Verschlüsselung der Datenbank mit

einem Password6. Validatedb - Validierung einer Oracle Lite

Datenbank

Page 7: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Wichtige Tools für Oracle Lite II

7. Oraload - Laden und ausspielen von Daten aus einer Oracle Lite Datenbank8. ODBInfo - Informationen über Version u.a. Informationen zu einer Oracle Lite Datenbank 9. Mobile SQL - SQL-Interpreter ( Commandline , msql.exe )

10. Loadjava / UnloadJava – Laden bzw. Entladen von Java-Klassen in eine / aus einer Oracle Lite Datenbank

Page 8: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Datentypen in ORACLE LiteNUMBER BIGINT INTEGER BINARY CHAR BIT VARCHAR LONG VARCHAR2 LONG RAW DATE LONG VARBINARY ROWID LONG VARCHAR BLOB RAW CLOB TIME DECIMAL TIMESTAMP DOUBLE PRECISION TINYINT FLOAT VARBINARY REAL SMALLINT NUMERIC

Page 9: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Wichtige Datenbankobjekte in ORACLE Lite

TabellenViews

IndizesSequencesSchemas

SnapshotsSynonyme

Funktionen - JavaProceduren - JavaTrigger - Java

- kein PL/SQL-Support -

Page 10: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Zugriffsmechanismen bzw. API‘s 1

ORACLE LITE

ODBC JDBC

OKAPI(okapi.dll)

Anwendung

ODBC-Treiber JDBC-Treiber

Page 11: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Zugriffsmechanismen bzw. API‘s II

Relationaler Datenbankzugriff : JDBC ( Java ) ODBC ( C/C++ , Delphi , u.a. )

Objektorientierte Datenbankentwicklung : Object Kernel API ( OKAPI )( C/C++ , Pascal , andere native Prog.-Sprachen )

Page 12: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Object Kernel API (OKAPI)

-Objekbasierender Direkt-Zugriff auf Oracle Lite Objekte-Objekt-Clustering-Unterstützt Blob‘s-Unterstützung von Transaktionen und Crash Recovery

Page 13: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Datentypen der OKAPI

okU4B - Unsigned long integer (4 bytes) ok4B - Signed long integer (4 bytes) okU2B - Unsigned short integer (2 bytes) ok2B - Signed short integer (2 bytes) okU1B - Unsigned character (1 byte) ok1B - Signed character (1 byte) okChar - Character (language-dependent size:

1 byte for English) okFloat - Float (4 bytes) okDouble - Double (6 bytes) okRef - Reference to another object (4 bytes)

Page 14: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Kleines OKAPI-Beispiel

okEnv env;okError err; err = okInit( NULL, &env ); if ( OK_IS_ERROR(err) ) { // Anlegen einer Oracle Lite Datenbank char *dbsName = „ORALITEDB"; okSize dbsNameLen = StrLen( dbsName ); err = okCreateDatabase( env, dbsNameLen,dbsName,NULL ); // Aufbau einer Session okRef dbRef; err = okConnect( env, dbsNameLen, dbsName, NULL, &dbRef ); ... }okFinal( env );

Page 15: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Zugriff via ODBC

ODBC-Engine

ODBC Oracle Lite Treiber

Oracle Lite Datenbank

Anwendung ( VDB , C++ .... )

Page 16: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Oracle Open Client Adapter (OCA)

Anwendung ( SQL*Plus u.a. )

SQL*Net

Open Client Adapter

POLiteandere DB‘S

ORACLE

TNS

ODBC

Page 17: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Zugriff via SQL-Plus / SQL-Net

Connectstring : ODBC:data_source_name -> Schlüsselwort ODBC -> kein TNS sondern ODBC

Beispiel:sqlplus system/manager@odbc:polite:politeSQL> select * from all_tables;SQL> exit;

Page 18: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Erstellen einer Demo-Datenbank

CREATEDB DataSourceName DatabaseName [[[VolID] DATABASE_SIZE] EXTENT_SIZE] [collation sequence]

Beispiel :

createdb POLite POLite.odb german

Page 19: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

POLite.ini

DatabaseID=502 ( Volume-ID )DataDirectory=C:\MessageFile=C:\Datenbanken\POLite\Mobile\ Sdk\BIN\OLITE40.MSBDBCharEncoding=NativeSQLCOMPATIBILITY=SQL92

Page 20: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .
Page 21: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Userverwaltung von Oracle Lite I

Standard – Rolen :

ADMIN - CREATE SCHEMA, CREATE USER, ALTER USER, DROP USER, DROP SCHEMA, GRANT, REVOKE

DBA – ADMIN, CREATE TABLE, CREATE ANY TABLE, CREATE VIEW, CREATE ANY VIEW, CREATE INDEX, CREATE ANY INDEX, ALTER TABLE, ALTER VIEW, DROP TABLE, DROP VIEW, DROP INDEX

RESOURCE - CREATE TABLE, CREATE VIEW, CREATE INDEX, CREATE CONSTRAINT, ALTER TABLE, ALTER VIEW, ALTER INDEX, ALTER CONSTRAINT, DROP TABLE, DROP VIEW, DROP INDEX, DROP CONSTRAINT, GRANT und REVOKE für Objekte

Page 22: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Userverwaltung von Oracle Lite II

-> Systemrechte – Grant , Revoke( Standard-Rolen )

-> Objektprivilegien – Grant , Revoke

-> Rolen

Synonyme !!!

Page 23: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Zugriffswege via Delphi

Delphi - Anwendung

BDE dbExpress DOA, ODAC

OCA

ADO

ODBC - Engine

Oracle Lite Treiber

Oracle Lite Datenbank

ODBC-Gateway

Page 24: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Zugriff via BDE/ODBC

Page 25: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Zugriff via ADO I

Page 26: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Zugriff via ADO II

Page 27: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

gespeicherter Code ( Funktionen, Proceduren etc. ) I

import java.util.*;public class Zeit{ public static String wieSpaet() { Calendar cal = Calendar.getInstance(); String result = ""; int stunde = cal.get(Calendar.HOUR_OF_DAY); if(stunde < 10) result = "0"; result = result + stunde + ":"; int minute = cal.get(Calendar.MINUTE); if(minute < 10) result = result + 0; result = result + minute + ":"; int sekunde = cal.get(Calendar.SECOND); if(sekunde < 10) result = result + 0; result = result + sekunde; return(result); }}

Page 28: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

gespeicherter Code ( Funktionen, Proceduren etc. ) II

create java class using bfile ('c:\oralite\classes','Zeit.class');

create or replace function Zeit return varchar2as language java name 'Zeit.wieSpaet() return java.lang.String';

select Zeit() from dual;

Page 29: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Kosten

Named User Lizenz : 100 $Named User Lizenz für 1 Jahr : 20 $

Anschaffung von minimal 1 Named User

Page 30: Softwareentwicklung mit Oracle Lite & Delphi Henry Wolf  .

Zukunft der Kombination Delphi – Oracle Lite

Mobile Endgeräte.NET

( als Java-Konkurenz )