File : database.bush

#!/usr/local/bin/bush
-------------------------------------------------------------------
-- DATABASE demo
--
-- by Ken O. Burtch
-------------------------------------------------------------------
procedure database is
database_name : constant string := "ken";
s : string;
begin
-- Connect to database and create demo table
db.connect( database_name );
if not db.is_connected then
put_line( standard_error, "Unable to connect to database!" );
comamnd_line.set_exit_status( 192 );
return;
end if;
db.begin_work;
db.prepare( "create table database_demo ( name varchar(80) )" );
db.execute;
-- Enter data
put_line( "This demo will enter names into a database table" );
put( "db.engine_of says your database is " ) @ (db.engine_of);
new_line;
new_line;
put_line( "Type a blank name to stop adding names" );
loop
put( "Name? " );
s := get_line;
exit when s = "";
db.prepare( "insert into database_demo (name) values ('" & s & "')" );
db.execute;
end loop;
-- Show sorted results
new_line;
put_line( "The names in alphabetical order are:" );
db.prepare( "select name from database_demo order by name" );
db.execute;
put( " There is/are " ) @ (db.tuples) @ ( " rows in the results" );
new_line;
put( " There is/are " ) @ (db.columns) @ ( " columns in the results" );
new_line;
while not db.end_of_query loop
db.fetch;
if db.is_null( 1 ) then
put( "NULL" );
else
put( db.value( 1 ) );
end if;
new_line;
end loop;
put_line( "(End of Results)" );
-- Discard table and disconnect from database
db.rollback_work;
db.disconnect;
end database;