0% found this document useful (0 votes)
42 views27 pages

Database Programming With Ada

This document discusses using Ada for database programming. It outlines the benefits of Ada including its similarity to PL/SQL, support for multitasking, object orientation, and platform independence. It describes libraries developed for Oracle database access and GUI programming in Ada. Several projects are mentioned where these libraries were used, including a workflow client and ERP solution. The conclusion reiterates some of the challenges of using Ada but also affirms the preference of the authors to program in Ada.

Uploaded by

kim adeva
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views27 pages

Database Programming With Ada

This document discusses using Ada for database programming. It outlines the benefits of Ada including its similarity to PL/SQL, support for multitasking, object orientation, and platform independence. It describes libraries developed for Oracle database access and GUI programming in Ada. Several projects are mentioned where these libraries were used, including a workflow client and ERP solution. The conclusion reiterates some of the challenges of using Ada but also affirms the preference of the authors to program in Ada.

Uploaded by

kim adeva
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

Database Programming with Ada

Ada Europe 2010, Valencia

Frank Piron, [email protected]


KonAd GmbH, In der Reis 5, D-79232 March-Buchheim
Content

•  Why Ada for Database Programming?

•  The Database Access Library

•  The User Interface Library

•  Projects

•  Conclusion
Why Ada for Database Programming?
The Situation in 2001

•  Goal: Development of Oracle Database Applications under


different platforms. High demands on stability and performance.

•  By the end of the millenium Oracle stopped further


development of the Developer 2000 toolset.

•  Oracle Forms does not allow 100% integration of system


services.

•  Oracle Forms modules are single threaded.

Begin of 2002
After 6 month of evaluation Ada
Why Ada for Database Programming?

Pro

•  Similarity between Ada and PL/SQL


•  Features of Ada
Multitasking
Object Orientation
System Integration
Platform Independence
Standardization
•  Ada is a language for the development of big reliable software
systems
Why Ada for Database Programming?

Contra

•  Ada is not a mainstream language.


Are there Ada programmers?
What will the customers say?
Will Ada be available in 10 years?
•  Ada is not easy to learn.
•  There are only few libraries for Database Access and GUI-
Programming.
Why Ada for Database Programming?
Start in 2002

Building knowledge of Ada95. Decision for GNAT.

We need libraries for Oracle Database Access and GUI-


Programming on Windows.

Web search and evaluation

  Adaoci (Dmitriy Anisimkov) as a starting point for a database


access library

  GWindows (David Botton) as a basis for the development of


GUI-Components
The Database Access Library
win32 Network
Oracle

OCI Win32-API Other

Adaoci
GWindows
Konada.Db.Sql + Network
.Rows
GWindows_Extended
.Tables

Controls (Single-, Multirow)


Application
The Database Access Library
Why not e.g. GNADE for database access?

•  We wanted to take full advantage of the Oracle Call Interface


like
•  Asynchronous Execution
•  Blob Support
•  Advanced Queueing

•  As few third party libraries as possible. Especially no ODBC


driver.

•  Ability to extend our library with new features of the Oracle Call
Interface as soon as possible.
The Database Access Library
Konada.Db.Sql

Adaoci Methods

Create
Konada.Db Management
Bind/Set of Define an Bind
Variables is
Execute Done by the
Sqltype
Library
Fetch

Get
Higher Layers
Application ….
The Database Access Library
Konada.Db.Sql
The Database Access Library
OCI and Ada Tasking

Fetch
T1
Connection Fetch
T2
Fetch

T3
Execute
synchron

T1 T2 T3
The Database Access Library
Rows and Tables
To get rid of Sql

DB

Db Konada.Db.Tables
Table Object
The Database Access Library
Konada.Db.Tables
The Database Access Library
Konada.Db.Tables - Implementation

Tagged Hierarchy
Double linked list
Data Element


Data

... Integer Time

String

Current Row (Array)

Row Position
export
The User Interface Library
win32 Network
Oracle

OCI Win32-API Other

Adaoci
GWindows
Konada.Db.Sql + Network
.Rows
GWindows_Extended
.Tables

Controls (Single-, Multirow)


The User Interface Library
Goals

GUI –Components for several purposes:

•  Display and manipulation of single and multiple Data Records

•  Automatic and programmatic layout (no GUI-Builder)

•  Flexible Event-Model

•  Tree-Navigation with the tree reflecting the data model

•  Storage of GUI-Layout into the database. The Modules adjust


without recompilation
The User Interface Library
Why start with Gwindows?

GUI-centered thick binding to the win32-API by David Botton

  Easy to use

  Easy to extend

  Available under the GMGPL


The User Interface Library
Example: Multi Record Control

List_View_Control GWindows

Header-Drag-
Ex_List_View_Control
And-Drop
Icons
Header-Click-Event
GWindows_Extended

Konada.Db.Tables - Object
The User Interface Library
Multi Record Control
The User Interface Library
Multi Record Control and Data Container

List View Control

Konada.Db.Tables

Row Position

rowid
The User Interface Library
Code sample – Simple Single Record Control
The User Interface Library
The Effect of the previous code snippet
Projects

•  ElSch – Workflow Client

•  Complete ERP-Solution for hydraulic and pneumatic


element manufacturers (Demo)

•  Interface between Workflow System and Archive


System on the Solaris platform

•  Further development of our dynamic GUI control


Projects - ElSch

ElSch – Workflow Client. Running since 2005


Stadtrichteramt Zürich
Projects – ERP Solution
Projects
Dynamic GUI Control
Application

DB

GUI - Maintenance

GUI
Layout
Conclusion

Database Programming with Ada is real business, but

•  We had to learn and turn

•  The customers have to trust our choice

•  We often have to give answers to the question:

„Why not Java?“

Here is one:
„We like programming in Ada.“

You might also like