% % File: travel % % Demo for showing LDL++ to external databases such as Sybase, Ingres and Itasca % database( { ldl_client(CLLNAME:string, CLFNAME:string, CLSECTOR:string, CLCELL:string), sybase::client(CLLNAME:char(18), CLFNAME:char(18), CLSECTOR:char(8), CLCELL:char(8)) local_name sybase_client from sybase_act_taos use travel user_name sa application_name 'ldl++' interface_filename '/usr/project/dedc/ldl++/demo/interfaces' password sybase, ess::client(CLLNAME:char(18), CLFNAME:char(18), CLSECTOR:char(8), CLCELL:char(8)) local_name ingres_client from ess_ingres use sqla user_name carnot agent_type 'IngresAgent' host_name 'logos.aca.mcc.com' port_number 17001 password 'carnot', ess::client(CLLNAME:char(18), CLFNAME:char(18), CLSECTOR:char(8), CLCELL:char(8)) local_name itasca_client from ess_itasca use itasca user_name carnot agent_type 'ItascaAgent' host_name 'anger.aca.mcc.com' port_number 17001 password 'carnot', ess::booking(RESVID:int, CLLNAME:char(18), AGLNAME:char(18), RESVDT:int) local_name itasca_booking from ess_itasca use itasca user_name carnot agent_type 'ItascaAgent' host_name 'anger.mcc.com' port_number 17001 password carnot, ess::agent(AGLNAME:char(18), AGFNAME:char(18), AGNAME:char(18)) local_name ingres_agent from ess_ingres use sqla user_name carnot agent_type 'IngresAgent' host_name 'logos.mcc.com' port_number 17001 password carnot, sybase::transprt(RESVID:int, FLIGHTID:char(4), ORIGDT:int, RESVCLS:char(1)) local_name sybase_transprt from sybase_act_taos use travel user_name sa application_name 'ldl++' interface_filename '/usr/project/dedc/ldl++/demo/interfaces' password sybase, ess::flights(FLIGHTID:char(4), ORIGDT:int, ORIGIN:char(18), DESTIN:char(18), DESTDT:int) local_name ingres_flights from ess_ingres use sqla user_name carnot agent_type 'IngresAgent' host_name 'logos.mcc.com' port_number 17001 password carnot } ). export db_client($DatabaseType, A, B, C, D). export db_client($DatabaseType, $A, B, C, D). export db_client($DatabaseType, $A, $B, C, D). export db_client($DatabaseType, $A, $B, $C, D). export db_client($DatabaseType, $A, $B, $C, $D). export insert_client($DatabaseType, $W, $X, $Y, $Z). export delete_client($DatabaseType, $W, $X, $Y, $Z). export all_client(A, B, C, D). export client(A, B, C, D). export agent(W, X, Y). export booking(W, X, Y, Z). export transprt(W, X, Y, Z). export flights(V, W, X, Y). export client_booking(A, B, C, D, E, F, G). export agent_booking(A, B, C, D, E, F). export booking_agent_client(A, B, C, D, E, F, G). export booking_agent_client_transprt_flights(X, A, B, C, D, E, F, G, H, I, J, K, L). export group_by_firstname( $DatabaseType, FirstName, LastNameSet ). db_client(ldl, A, B, C, D) <- ldl_client(A, B, C, D). db_client(sybase, A, B, C, D) <- sybase_client(A, B, C, D). db_client(ingres, A, B, C, D) <- ingres_client(A, B, C, D). db_client(itasca, A, B, C, D) <- itasca_client(A, B, C, D). all_client(A, B, C, D) <- ldl_client(A, B, C, D). all_client(A, B, C, D) <- sybase_client(A, B, C, D). all_client(A, B, C, D) <- ingres_client(A, B, C, D). all_client(A, B, C, D) <- itasca_client(A, B, C, D). insert_client(DatabaseType, A, B, C, D) <- if( DatabaseType = ldl then +ldl_client(A, B, C, D) else if( DatabaseType = sybase then +sybase_client(A, B, C, D) else if( DatabaseType = ingres then +ingres_client(A, B, C, D) else if( DatabaseType = itasca then +itasca_client(A, B, C, D) ) ) ) ). delete_client(DatabaseType, A, B, C, D) <- if( DatabaseType = ldl then -ldl_client(A, B, C, D) else if( DatabaseType = sybase then -sybase_client(A, B, C, D) else if( DatabaseType = ingres then -ingres_client(A, B, C, D) else if( DatabaseType = itasca then -itasca_client(A, B, C, D) ) ) ) ). group_by_firstname( DatabaseType, FirstName, < LastName > ) <- db_client( DatabaseType, LastName, FirstName, _, _ ). client(A, B, C, D) <- ldl_client(A, B, C, D). agent(W, X, Y) <- ingres_agent(W, X, Y). booking(W, X, Y, Z) <- itasca_booking(W, X, Y, Z). transprt(W, X, Y, Z) <- sybase_transprt(W, X, Y, Z). flights(V, W, X, Y) <- ingres_flights(V, W, X, Y, _). client_booking(A, B, C, D, E, F, G) <- booking(E, A, F, G), client(A, B, C, D). agent_booking(A, B, C, D, E, F) <- agent(A, B, C), booking(D, E, A, F). booking_agent_client(A, B, C, D, E, F, G) <- booking(X, A, E, Y), agent(E, F, G), client(A, B, C, D). booking_agent_client_transprt_flights(X, A, B, C, D, E, F, G, H, I, J, K, L) <- booking(X, A, E, Y), agent(E, F, G), flights(H, I, K, L), client(A, B, C, D), transprt(X, H, I, J).