Database Oblig 2

Database Oblig 2
Due Tuesday 18-Dec, 2007
The Assignment
Using the Northwind database example, build a text based UI in C/C++
that enables the following operations:
• Be able to list the employee name, customer name, shipper name,
order date, shipped date, required date and the product names, their
quantities and unit prices for a given order number.
• Be able to insert new orders with various quantities of products for a
given customer. Naturally the quantity in the order must not exceed
the quantity in stock. And the quantity in stock must be updated
after the order is added. Note to ease the implementation tedium you
may have default shippers, employees, freights, etc. for newly added
• Be able to cancel orders so long as they have not yet shipped. In such
a case inventory levels of various products must be restored. Use the
system clock to determine the current date.
The primary goal of this project is to obtain experience in database
programming using ODBC, not the design of user interfaces. Therefore,
the interface should be a simple text-based menu-driven application, which
prompts the user to select one of a number of choices, and then prompts for
input values and/or provides output values. The system must initialize with
a prompt for the data-source and user name/password (so that I can run
your system to test it over my Northwind database!). Within entry of data
at a user prompt, it should always be possible to erase the last character
which was typed using the backspace key.
Although concurrency directives are not part of this project, the software should be written with an eye towards the idea that concurrency is
an issue. To this end, the program should minimize caching values which it
has computed on one query so that they may be used in the next. Rather,
it should seek to fetch all required values directly from the database for
each new query. Do not worry if you are unable to follow this advice for all
program features.
At least somewhere in your program you must bind variable parameters
in an SQL query use the API call SQLBindParameter; do not always build
the query by concatenating strings containing the parameter values and the
query template in C. Please document where in you system you have used
For PostgreSQL:
Driver = /usr/lib/odbc/
It is suggested that you include the following in your .odbc.ini file:
Trace = yes
TraceFile = /tmp/odbc.log
Alternative in Android
Instead of using ODBC, you may program this system under Google’s new
Android SDK. In such a case you must either use a local instantiation of
Northwind database on the device or connect to a remote database running
on the web. In either case you must demonstrate the interface running under
the Android mobile phone emulator.
What to hand in
It must be possible to learn to use the software without having to read the
source code, and without having to experiment excessively. To this end, the
project submission must include a concise user manual which explains how
to use the software.
The following items must be submitted as hard copy in the box marked
5DV021: 1. The user manual for your software. 2. The source code. 3.
A transcript of a session which illustrates the principal features of your
software package. The following must be submitted in electronic form, to
the e-mail address 1. A zip containing the user manual,
source code, and the executable object or jar file for your program.