Softwareentwicklung mit Oracle Lite & Delphi

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

Dynamische WEB-Applikationen
Datenbankzugriff über ISAPI-Webservererweiterungen
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
E-Solutions mySchoeller.com for Felix Schoeller Imaging
PL/SQL - Programmierung von Programmeinheiten. © Prof. T. Kudraß, HTWK Leipzig Gespeicherte Prozeduren – Eine Prozedur ist ein benannter PL/SQL Block,
Transaction Synchronization for XML Data in Client Server Web Applications Stefan Böttcher & Adelhard Türling Universität Paderborn.
PL/SQL - Kurze Einführung -.
JPQL Java Persistence Query Language
Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH
1. 2 Microsoft.NET Überblick Dirk Primbs Technologieberater Developer Platform & Strategy Group Microsoft Deutschland GmbH.
MySQL.
Prof. Dr. Andreas Schmietendorf
Verteilte Software - Java - Prozedurale Programmierung 1
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding.
Objektrelationales Mapping mit JPA Entity Mapping Jonas Bandi Simon Martinelli.
Java: Grundlagen der Sprache
SQL als Abfragesprache
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Dynamische Webseiten Java servlets.
Datenbank-Zugriffsschnittstellen am Beispiel von Oracle und PL/SQL.
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
PL/SQL - Programmierung von Programmeinheiten. © Prof. T. Kudraß, HTWK Leipzig Gespeicherte Prozeduren – Eine Prozedur ist ein benannter PL/SQL Block,
Text-Retrieval mit Oracle Vortrag von Andreas Mück & David Diestel.
Objektorientierte Programmierung JDK-Klassenbibliothek
Oracle interMedia Audio Vortrag für das Seminar Oracle Zusatzoptionen Chris Haußmann.
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
Modulare Programmierung
JDBC EDV JDBC.
1 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe.
1 Kapitel 8: Datenintegrität. 2 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
2.2 Definition eines Datenbankschemas (SQL-DDL)
Entwickeln einer Windows 8 Modern UI Businessapplikation auf der Basis von Dynamics CRM/xRM Christian Haller Marc Sallin isolutions AG isolutions.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #4 Anfragebearbeitung (Teil 2)
Vergleich der verschiedenen kommerziellen Datenbanksysteme
FH-Hof Standard Query Language Richard Göbel. FH-Hof Geschichte der Sprache SQL System/R-Projekts von IBM zu Beginn der 70er Jahre: Entwicklung der Sprache.
© All rights reserved. Zend Technologies, Inc. Jan Burkl System Engineer, Zend Technologies Zend Server im Cluster.
ORMapper: NHibernate Henning Eiben
Entity Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Advanced Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Kap 4-1OHO Kap. 4.2 Das Orbix CORBA-System Kurzer überblick zu der CORBA-Implementierung Orbix •Unser Fahrplan: •IDL Verwendungsbeispiel •Zoom-In: CORBA.
Portabilität Seminar aus Softwareentwicklung: Programmierstil Christine Schiestl WS 02 / 03.
Client Server Architektur
Beschreiben Sie eine Web Interaktion mittels Java Applets.
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #8 SQL (Teil 5)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #9 SQL (Teil 4)
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #7 SQL (Teil 4)
HORIZONT 1 XINFO ® Das IT - Informationssystem Eclipse Plugin HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Template v5 October 12, Copyright © Infor. All Rights Reserved.
Relationales Datenmodell und DDL
Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.
Hibernate (OR-Mapping)
Launch ON Global.vi System ID object name classname Services to suscribe Observer Control Ref vi-path Service name Step 1 : Objects register to the Global.vi´s,
SQL Server 2005 CLR Integration Sebastian Weber Microsoft Deutschland GmbH
Programmiervorkurs WS 2014/15 Methoden
GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI Punkt-zu-Punkt-Kommunikation Oswald Haan
8 Erzeugen und Verwalten von Tabellen Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.
Partner Präsentation Interaktives Planen in der Fertigung.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #8 SQL (Teil 5)
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
AMS confidential & proprietary International Business and Technology Consultants 1 Sicherheitskonzepte in Oracle Von der Entwicklung in die Produktion.
Reorganisation und Administration großer SAP-DB Manfred Riemer SAP AG (z.B. MCOD-Systeme)
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
Workshop 1 Getting Started 2016 Boris Wylutzki
Vorlesung #8 SQL (Teil 5).
Create Table, Rechte und Rollen
Ablauf Citrixpräsentation
Azure Mobile Services Deep dive into node.js scripting
 Präsentation transkript:

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

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.

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

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

Mobil Sync & Mobil Server Komponenten MobilSync – Syncronisation von Oracle Lite Datenbanken mit Zentralen u.a. Komponente Mobil Server – Distribution , Synchronisation und Verteilung von Oracle Lite Datenbanken und Applikationen

Wichtige Tools für Oracle Lite I Createdb - Anlegen einer Datenbank Removedb - Löschen einer Datenbank Migrate - Migration einer älteren DB-Version Decryptdb - Aufheben der Verschlüsselung einer Oracle Lite Datenbank Encryptdb - Verschlüsselung der Datenbank mit einem Password Validatedb - Validierung einer Oracle Lite Datenbank

Wichtige Tools für Oracle Lite II 7. Oraload - Laden und ausspielen von Daten aus einer Oracle Lite Datenbank 8. 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

Datentypen in ORACLE Lite NUMBER 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

Wichtige Datenbankobjekte in ORACLE Lite Tabellen Views Indizes Sequences Schemas Snapshots Synonyme Funktionen - Java Proceduren - Java Trigger - Java - kein PL/SQL-Support -

Zugriffsmechanismen bzw. API‘s 1 Anwendung ODBC JDBC ODBC-Treiber JDBC-Treiber OKAPI (okapi.dll) ORACLE LITE

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 )

Object Kernel API (OKAPI) Objekbasierender Direkt-Zugriff auf Oracle Lite Objekte Objekt-Clustering Unterstützt Blob‘s Unterstützung von Transaktionen und Crash Recovery

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)

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

ODBC Oracle Lite Treiber Zugriff via ODBC Anwendung ( VDB , C++ .... ) ODBC-Engine ODBC Oracle Lite Treiber Oracle Lite Datenbank

Oracle Open Client Adapter (OCA) Anwendung ( SQL*Plus u.a. ) SQL*Net Open Client Adapter TNS ODBC ORACLE POLite andere DB‘S

Zugriff via SQL-Plus / SQL-Net Connectstring : ODBC:data_source_name -> Schlüsselwort ODBC -> kein TNS sondern ODBC Beispiel: sqlplus system/manager@odbc:polite:polite SQL> select * from all_tables; SQL> exit;

Erstellen einer Demo-Datenbank CREATEDB DataSourceName DatabaseName [[[VolID] DATABASE_SIZE] EXTENT_SIZE] [collation sequence] Beispiel : createdb POLite POLite.odb german

POLite.ini DatabaseID=502 ( Volume-ID ) DataDirectory=C:\ MessageFile=C:\Datenbanken\POLite\Mobile\ Sdk\BIN\OLITE40.MSB DBCharEncoding=Native SQLCOMPATIBILITY=SQL92

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

Userverwaltung von Oracle Lite II -> Systemrechte – Grant , Revoke ( Standard-Rolen ) -> Objektprivilegien – Grant , Revoke -> Rolen Synonyme !!!

Zugriffswege via Delphi Delphi - Anwendung BDE dbExpress ADO DOA, ODAC ODBC- Gateway OCA ODBC - Engine Oracle Lite Treiber Oracle Lite Datenbank

Zugriff via BDE/ODBC

Zugriff via ADO I

Zugriff via ADO II

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); }

gespeicherter Code ( Funktionen, Proceduren etc. ) II create java class using bfile ('c:\oralite\classes','Zeit.class'); create or replace function Zeit return varchar2 as language java name 'Zeit.wieSpaet() return java.lang.String'; select Zeit() from dual;

Anschaffung von minimal 1 Named User Kosten Named User Lizenz : 100 $ Named User Lizenz für 1 Jahr : 20 $ Anschaffung von minimal 1 Named User

Zukunft der Kombination Delphi – Oracle Lite Mobile Endgeräte .NET ( als Java-Konkurenz )