| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | /************************************************************************* | 
					
						
							|  |  |  | *									 * | 
					
						
							|  |  |  | *	 YAP Prolog 							 * | 
					
						
							|  |  |  | *									 * | 
					
						
							|  |  |  | *	Yap Prolog was developed at NCCUP - Universidade do Porto	 * | 
					
						
							|  |  |  | *									 * | 
					
						
							|  |  |  | * Copyright L.Damas, V.S.Costa and Universidade do Porto 1985-1997	 * | 
					
						
							|  |  |  | *									 * | 
					
						
							|  |  |  | ************************************************************************** | 
					
						
							|  |  |  | *									 * | 
					
						
							|  |  |  | * File:		myddas_assert_predicates.yap	                         * | 
					
						
							|  |  |  | * Last rev:							         * | 
					
						
							|  |  |  | * mods:									 * | 
					
						
							|  |  |  | * comments:	Predicates that assert other for the MyDDAS Interface	 * | 
					
						
							|  |  |  | *									 * | 
					
						
							|  |  |  | *************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | :- module(myddas_assert_predicates,[ | 
					
						
							| 
									
										
										
										
											2006-02-10 23:42:19 +00:00
										 |  |  | 				    db_import/2, | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | 				    db_import/3, | 
					
						
							| 
									
										
										
										
											2006-02-10 23:42:19 +00:00
										 |  |  | 				    db_view/2, | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | 				    db_view/3, | 
					
						
							| 
									
										
										
										
											2006-03-03 14:14:54 +00:00
										 |  |  | 				    db_insert/2, | 
					
						
							| 
									
										
										
										
											2006-01-17 22:54:02 +00:00
										 |  |  | 				    db_insert/3, | 
					
						
							| 
									
										
										
										
											2006-02-10 23:42:19 +00:00
										 |  |  | 				    db_abolish/2, | 
					
						
							|  |  |  | 				    db_listing/0, | 
					
						
							|  |  |  | 				    db_listing/1 | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | 				   ]). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | :- use_module(myddas,[ | 
					
						
							|  |  |  | 		      db_module/1 | 
					
						
							|  |  |  | 		     ]). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | :- use_module(myddas_errors,[ | 
					
						
							|  |  |  | 			     '$error_checks'/1 | 
					
						
							|  |  |  | 			     ]). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | :- use_module(myddas_util_predicates,[ | 
					
						
							|  |  |  | 				      '$get_values_for_insert'/3, | 
					
						
							|  |  |  | 				      '$make_atom'/2, | 
					
						
							|  |  |  | 				      '$write_or_not'/1, | 
					
						
							|  |  |  | 				      '$copy_term_nv'/4, | 
					
						
							|  |  |  | 				      '$assert_attribute_information'/4, | 
					
						
							|  |  |  | 				      '$make_a_list'/2, | 
					
						
							|  |  |  | 				      '$where_exists'/2, | 
					
						
							|  |  |  | 				      '$build_query'/5 | 
					
						
							|  |  |  | 				      ]). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | :- use_module(myddas_prolog2sql,[ | 
					
						
							|  |  |  | 				 translate/3, | 
					
						
							|  |  |  | 				 queries_atom/2 | 
					
						
							|  |  |  | 				]). | 
					
						
							|  |  |  | :- use_module(myddas_mysql,[ | 
					
						
							|  |  |  | 			    db_my_result_set/1 | 
					
						
							|  |  |  | 			    ]). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
					
						
							|  |  |  | % db_import/3 | 
					
						
							| 
									
										
										
										
											2006-02-10 23:42:19 +00:00
										 |  |  | % db_import/2 | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | % | 
					
						
							| 
									
										
										
										
											2006-02-10 23:42:19 +00:00
										 |  |  | db_import(RelationName,PredName):- | 
					
						
							| 
									
										
										
										
											2006-03-03 14:14:54 +00:00
										 |  |  | 	db_import(myddas,RelationName,PredName). | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | db_import(Connection,RelationName,PredName) :- | 
					
						
							|  |  |  | 	'$error_checks'(db_import(Connection,RelationName,PredName)), | 
					
						
							|  |  |  | 	get_value(Connection,Con), | 
					
						
							|  |  |  | 	c_db_connection_type(Con,ConType), | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 	% get relation arity | 
					
						
							|  |  |  |         ( ConType == mysql -> | 
					
						
							|  |  |  | 	    c_db_my_number_of_fields(RelationName,Con,Arity) | 
					
						
							|  |  |  | 	; | 
					
						
							|  |  |  | 	    c_db_odbc_number_of_fields(RelationName,Con,Arity) | 
					
						
							|  |  |  | 	), | 
					
						
							|  |  |  | 	db_module(Module), | 
					
						
							|  |  |  | 	not c_db_check_if_exists_pred(PredName,Arity,Module), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	R=..[relation,PredName,Arity,RelationName], | 
					
						
							|  |  |  | 	% assert relation fact | 
					
						
							|  |  |  | 	assert(myddas_prolog2sql:R), | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	Size is 2*Arity, | 
					
						
							|  |  |  |         '$make_a_list'(Size,TypesList), | 
					
						
							|  |  |  | 	% get attributes types in TypesList [field0,type0,field1,type1...] | 
					
						
							|  |  |  | 	( ConType == mysql -> | 
					
						
							|  |  |  | 	    c_db_my_get_attributes_types(RelationName,Con,TypesList) | 
					
						
							|  |  |  | 	; | 
					
						
							|  |  |  | 	    c_db_odbc_get_attributes_types(RelationName,Con,TypesList) | 
					
						
							|  |  |  | 	), | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	% assert attributes facts  | 
					
						
							|  |  |  |         '$assert_attribute_information'(0,Arity,RelationName,TypesList), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	% build PredName functor | 
					
						
							|  |  |  | 	functor(P,PredName,Arity), | 
					
						
							| 
									
										
										
										
											2006-04-30 10:11:25 +00:00
										 |  |  | 	P=..[PredName|LA], | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-01-08 16:30:00 +00:00
										 |  |  | 	M=myddas_assert_predicates, | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | 	%build PredName clause | 
					
						
							|  |  |  | 	( ConType == mysql -> | 
					
						
							| 
									
										
										
										
											2006-01-08 16:30:00 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-01-10 15:36:35 +00:00
										 |  |  | 	    Assert =..[':-',P,','(M:'$copy_term_nv'(P,[],G,_), | 
					
						
							|  |  |  | 		              ','(M:translate(G,G,Code), | 
					
						
							| 
									
										
										
										
											2006-01-08 16:30:00 +00:00
										 |  |  | 		              ','(M:queries_atom(Code,FinalSQL), | 
					
						
							|  |  |  | 			      ','(M:db_my_result_set(Mode), | 
					
						
							|  |  |  | 			      ','(M:'$write_or_not'(FinalSQL), | 
					
						
							| 
									
										
										
										
											2006-04-30 10:11:25 +00:00
										 |  |  | 	                      ','(M:c_db_my_query(FinalSQL,ResultSet,Con,Mode,_), | 
					
						
							| 
									
										
										
										
											2006-01-10 15:36:35 +00:00
										 |  |  | 			      ','(!,M:c_db_my_row(ResultSet,Arity,LA))))))))] | 
					
						
							| 
									
										
										
										
											2006-01-08 16:30:00 +00:00
										 |  |  | 	     | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | 	    ; | 
					
						
							| 
									
										
										
										
											2006-01-08 16:30:00 +00:00
										 |  |  | 	    '$make_a_list'(Arity,BindList), | 
					
						
							| 
									
										
										
										
											2006-01-10 15:36:35 +00:00
										 |  |  | 	    Assert =..[':-',P,','(M:'$copy_term_nv'(P,[],G,_), | 
					
						
							| 
									
										
										
										
											2006-02-10 23:42:19 +00:00
										 |  |  | 			      ','(M:translate(G,G,Code), | 
					
						
							| 
									
										
										
										
											2006-01-08 16:30:00 +00:00
										 |  |  | 			      ','(M:queries_atom(Code,FinalSQL), | 
					
						
							| 
									
										
										
										
											2010-05-23 18:23:51 +01:00
										 |  |  | 			      ','(M:c_db_odbc_query(FinalSQL,ResultSet,Arity,BindList,Con), | 
					
						
							| 
									
										
										
										
											2006-01-08 16:30:00 +00:00
										 |  |  | 		              ','(M:'$write_or_not'(FinalSQL), | 
					
						
							| 
									
										
										
										
											2006-01-10 15:36:35 +00:00
										 |  |  | 			      ','(!,M:c_db_odbc_row(ResultSet,BindList,LA)))))))] | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | 	    ), | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	assert(Module:Assert), | 
					
						
							|  |  |  | 	c_db_add_preds(PredName,Arity,Module,Con). | 
					
						
							|  |  |  | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
					
						
							|  |  |  | % db_view/3 | 
					
						
							| 
									
										
										
										
											2006-02-10 23:42:19 +00:00
										 |  |  | % db_view/2 | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | % | 
					
						
							| 
									
										
										
										
											2006-02-10 23:42:19 +00:00
										 |  |  | db_view(PredName,DbGoal) :- | 
					
						
							|  |  |  | 	db_view(myddas,PredName,DbGoal). | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | db_view(Connection,PredName,DbGoal) :- | 
					
						
							|  |  |  | 	'$error_checks'(db_view(Connection,PredName,DbGoal)), | 
					
						
							|  |  |  | 	get_value(Connection,Con), | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  |        	% get arity of projection term | 
					
						
							|  |  |  | 	functor(PredName,ViewName,Arity), | 
					
						
							|  |  |  | 	db_module(Module), | 
					
						
							| 
									
										
										
										
											2006-03-09 15:52:06 +00:00
										 |  |  | 	not c_db_check_if_exists_pred(ViewName,Arity,Module), | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	% This copy_term is done to prevent the unification | 
					
						
							|  |  |  | 	% with top-level variables   A='var('A')' error | 
					
						
							|  |  |  | 	copy_term((PredName,DbGoal),(CopyView,CopyGoal)), | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-30 10:11:25 +00:00
										 |  |  | 	CopyView=..[ViewName|LA], | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-01-08 16:30:00 +00:00
										 |  |  | 	M=myddas_assert_predicates, | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | 	c_db_connection_type(Con,ConType), | 
					
						
							| 
									
										
										
										
											2006-01-08 16:30:00 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | 	% build view clause | 
					
						
							|  |  |  | 	( ConType == mysql -> | 
					
						
							| 
									
										
										
										
											2006-01-10 15:36:35 +00:00
										 |  |  | 	    Assert =..[':-',CopyView, | 
					
						
							|  |  |  | 		       ','(M:'$copy_term_nv'(CopyView,[],ProjT,Dic), | 
					
						
							|  |  |  | 		       ','(M:'$copy_term_nv'(CopyGoal,Dic,NG,_), | 
					
						
							|  |  |  | 		       ','(M:translate(ProjT,NG,Code), | 
					
						
							| 
									
										
										
										
											2006-01-08 16:30:00 +00:00
										 |  |  | 		       ','(M:queries_atom(Code,FinalSQL), | 
					
						
							|  |  |  | 		       ','(M:db_my_result_set(Mode), | 
					
						
							|  |  |  | 		       ','(M:'$write_or_not'(FinalSQL), | 
					
						
							| 
									
										
										
										
											2006-04-30 10:11:25 +00:00
										 |  |  |                	       ','(M:c_db_my_query(FinalSQL,ResultSet,Con,Mode,_), | 
					
						
							| 
									
										
										
										
											2006-01-10 15:36:35 +00:00
										 |  |  | 		       ','(!,M:c_db_my_row(ResultSet,Arity,LA)))))))))] | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | 	    ; | 
					
						
							| 
									
										
										
										
											2006-01-17 22:54:02 +00:00
										 |  |  | 	    % Assert =..[':-',NewName, | 
					
						
							|  |  |  | % 		       ','(M:translate(CopyView,CopyGoal,Code), | 
					
						
							|  |  |  | % 		       ','(M:queries_atom(Code,FinalSQL), | 
					
						
							|  |  |  | % 	               ','(M:'$make_a_list'(Arity,BindList), | 
					
						
							|  |  |  | % 		       ','(M:'$write_or_not'(FinalSQL), | 
					
						
							|  |  |  | % 	      	       ','(M:c_db_odbc_query(FinalSQL,ResultSet,Arity,BindList,Con), | 
					
						
							|  |  |  | % 		       ','(!,M:c_db_odbc_row(ResultSet,BindList,LA)))))))] | 
					
						
							|  |  |  | 	    true | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | 	    ), | 
					
						
							|  |  |  | 	assert(Module:Assert), | 
					
						
							|  |  |  | 	c_db_add_preds(ViewName,Arity,Module,Con). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
					
						
							|  |  |  | % db_insert/3 | 
					
						
							|  |  |  | % | 
					
						
							|  |  |  | % | 
					
						
							| 
									
										
										
										
											2006-03-03 14:14:54 +00:00
										 |  |  | db_insert(RelationName,PredName) :- | 
					
						
							|  |  |  | 	db_insert(myddas,RelationName,PredName). | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | db_insert(Connection,RelationName,PredName) :- | 
					
						
							|  |  |  | 	'$error_checks'(db_insert3(Connection,RelationName,PredName)), | 
					
						
							|  |  |  | 	get_value(Connection,Con), | 
					
						
							|  |  |  | 	c_db_connection_type(Con,ConType), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	% get relation arity | 
					
						
							|  |  |  | 	( ConType == mysql -> | 
					
						
							|  |  |  | 	    c_db_my_number_of_fields(RelationName,Con,Arity) | 
					
						
							|  |  |  | 	; | 
					
						
							|  |  |  | 	    c_db_odbc_number_of_fields(RelationName,Con,Arity) | 
					
						
							|  |  |  | 	), | 
					
						
							|  |  |  | 	db_module(Module), | 
					
						
							|  |  |  | 	not c_db_check_if_exists_pred(PredName,Arity,Module), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	R=..[relation,PredName,Arity,RelationName], | 
					
						
							|  |  |  | 	% assert relation fact | 
					
						
							|  |  |  | 	assert(myddas_prolog2sql:R), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	% build PredName functor | 
					
						
							|  |  |  | 	functor(Predicate,PredName,Arity), | 
					
						
							| 
									
										
										
										
											2006-04-30 10:11:25 +00:00
										 |  |  | 	Predicate=..[PredName|LA], | 
					
						
							|  |  |  | 	 | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | 	Size is 2*Arity, | 
					
						
							|  |  |  |         '$make_a_list'(Size,TypesList), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	% get attributes types in TypesList [field0,type0,field1,type1...] | 
					
						
							|  |  |  | 	% and build PredName clause | 
					
						
							|  |  |  | 	( ConType == mysql -> | 
					
						
							|  |  |  | 	    c_db_my_get_attributes_types(RelationName,Con,TypesList), | 
					
						
							|  |  |  | 	    Assert =..[':-',Predicate,','(myddas_assert_predicates:'$get_values_for_insert'(TypesList,LA,ValuesList), | 
					
						
							| 
									
										
										
										
											2006-03-03 14:14:54 +00:00
										 |  |  | 					  ','(myddas_assert_predicates:'$make_atom'(['INSERT INTO `',RelationName,'` VALUES ('|ValuesList],SQL), | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | 					      ','(myddas_assert_predicates:db_my_result_set(Mode), | 
					
						
							|  |  |  | 						  ','(myddas_assert_predicates:'$write_or_not'(SQL), | 
					
						
							| 
									
										
										
										
											2006-04-30 10:11:25 +00:00
										 |  |  | 						      myddas_assert_predicates:c_db_my_query(SQL,_,Con,Mode,_)))))] | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | 	; | 
					
						
							|  |  |  | 	    c_db_odbc_get_attributes_types(RelationName,Con,TypesList), | 
					
						
							|  |  |  | 	    Assert =..[':-',Predicate,','(myddas_assert_predicates:'$get_values_for_insert'(TypesList,LA,ValuesList), | 
					
						
							| 
									
										
										
										
											2006-03-03 14:14:54 +00:00
										 |  |  | 					  ','(myddas_assert_predicates:'$make_atom'(['INSERT INTO `',RelationName,'` VALUES ('|ValuesList],SQL), | 
					
						
							| 
									
										
										
										
											2005-12-19 13:41:15 +00:00
										 |  |  | 					      ','(myddas_assert_predicates:'$write_or_not'(SQL), | 
					
						
							|  |  |  | 						  myddas_assert_predicates:c_db_odbc_query(SQL,_,_,_,Con))))] | 
					
						
							|  |  |  | 	), | 
					
						
							|  |  |  | 	assert(Module:Assert), | 
					
						
							|  |  |  | 	c_db_add_preds(PredName,Arity,Module,Con). | 
					
						
							|  |  |  | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
					
						
							| 
									
										
										
										
											2006-01-17 22:54:02 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
					
						
							|  |  |  | % db_abolish(+,+) | 
					
						
							|  |  |  | % | 
					
						
							|  |  |  | % | 
					
						
							|  |  |  | db_abolish(Module:PredName,Arity):-!, | 
					
						
							| 
									
										
										
										
											2006-02-10 23:42:19 +00:00
										 |  |  | 	'$error_checks'(db_abolish(Module:PredName,Arity)), | 
					
						
							|  |  |  | 	c_db_delete_predicate(Module,PredName,Arity), | 
					
						
							|  |  |  | 	abolish(Module:PredName,Arity). | 
					
						
							|  |  |  | db_abolish(PredName,Arity):- | 
					
						
							|  |  |  | 	'$error_checks'(db_abolish(PredName,Arity)), | 
					
						
							|  |  |  | 	db_module(Module), | 
					
						
							|  |  |  | 	c_db_delete_predicate(Module,PredName,Arity), | 
					
						
							|  |  |  | 	abolish(Module:PredName,Arity). | 
					
						
							|  |  |  | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
					
						
							|  |  |  | % db_abolish(+,+) | 
					
						
							|  |  |  | % | 
					
						
							|  |  |  | % | 
					
						
							|  |  |  | db_abolish(Module:PredName,Arity):-!, | 
					
						
							|  |  |  | 	'$error_checks'(db_abolish(Module:PredName,Arity)), | 
					
						
							| 
									
										
										
										
											2006-01-17 22:54:02 +00:00
										 |  |  | 	c_db_delete_predicate(Module,PredName,Arity), | 
					
						
							|  |  |  | 	abolish(Module:PredName,Arity). | 
					
						
							|  |  |  | db_abolish(PredName,Arity):- | 
					
						
							| 
									
										
										
										
											2006-02-10 23:42:19 +00:00
										 |  |  | 	'$error_checks'(db_abolish(PredName,Arity)), | 
					
						
							| 
									
										
										
										
											2006-01-17 22:54:02 +00:00
										 |  |  | 	db_module(Module), | 
					
						
							|  |  |  | 	c_db_delete_predicate(Module,PredName,Arity), | 
					
						
							|  |  |  | 	abolish(Module:PredName,Arity). | 
					
						
							|  |  |  | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-02-10 23:42:19 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
					
						
							|  |  |  | % db_listing. | 
					
						
							|  |  |  | % | 
					
						
							|  |  |  | % | 
					
						
							|  |  |  | db_listing:- | 
					
						
							|  |  |  | 	c_db_connection(Con), | 
					
						
							|  |  |  | 	c_db_preds_conn(Con,Module,Name,Arity), | 
					
						
							|  |  |  | 	listing(Module:Name/Arity), | 
					
						
							|  |  |  | 	fail. | 
					
						
							|  |  |  | db_listing. | 
					
						
							|  |  |  | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
					
						
							|  |  |  | % db_listing. | 
					
						
							|  |  |  | % | 
					
						
							|  |  |  | % | 
					
						
							|  |  |  | db_listing(Module:Name/Arity):-!, | 
					
						
							|  |  |  | 	c_db_connection(Con), | 
					
						
							|  |  |  | 	c_db_preds_conn(Con,Module,Name,Arity), | 
					
						
							|  |  |  | 	listing(Module:Name/Arity). | 
					
						
							|  |  |  | db_listing(Name/Arity):-!, | 
					
						
							|  |  |  | 	c_db_connection(Con), | 
					
						
							|  |  |  | 	c_db_preds_conn(Con,Module,Name,Arity), | 
					
						
							|  |  |  | 	listing(Module:Name/Arity). | 
					
						
							|  |  |  | db_listing(Name):- | 
					
						
							|  |  |  | 	c_db_connection(Con), | 
					
						
							|  |  |  | 	c_db_preds_conn(Con,Module,Name,Arity), | 
					
						
							|  |  |  | 	listing(Module:Name/Arity). | 
					
						
							|  |  |  | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
					
						
							|  |  |  | 
 |