diff --git a/library/MYDDAS/myddas.yap b/library/MYDDAS/myddas.yap index 6ba993a98..5e6cadfdd 100644 --- a/library/MYDDAS/myddas.yap +++ b/library/MYDDAS/myddas.yap @@ -26,7 +26,7 @@ db_stats/2, db_sql_select/3, - db_prolog_select/4, + db_prolog_select/3, db_command/2, db_insert/2, db_create_table/3, @@ -93,7 +93,8 @@ '$make_list_of_args'/4, '$get_table_name'/2, '$get_values_for_update'/4, - '$extract_args'/4 + '$extract_args'/4, + '$lenght'/2 ]). :- use_module(myddas_errors,[ @@ -101,12 +102,13 @@ ]). :- use_module(myddas_prolog2sql,[ - translate/3 + translate/3, + queries_atom/2 ]). :- use_module(lists,[ append/3 - ]). + ]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -252,19 +254,20 @@ db_sql_select(Connection,SQL,LA):- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% db_prolog_select(+,-,+,+) +% db_prolog_select(+,+,+) % % -db_prolog_select(Connection,LA,ViewName,DbGoal):- +db_prolog_select(Connection,LA,DbGoal):- - functor(ViewName,PredName,Arity), - %functor(NewName,PredName,Arity), - translate(ViewName,DbGoal,Code), + '$lenght'(LA,Arity), + functor(ViewName,viewname,Arity), + % build arg list for viewname/Arity + '$make_list_of_args'(1,Arity,ViewName,LA), + + copy_term((ViewName,DbGoal),(CopyView,CopyGoal)), + translate(CopyView,CopyGoal,Code), queries_atom(Code,SQL), - % build arg list for db_my_row/2 - '$make_list_of_args'(1,Arity,ViewName,LA), - get_value(Connection,Con), c_db_connection_type(Con,ConType), '$write_or_not'(SQL), diff --git a/library/MYDDAS/myddas_util_predicates.yap b/library/MYDDAS/myddas_util_predicates.yap index 8e2b2b72b..76bc3c758 100644 --- a/library/MYDDAS/myddas_util_predicates.yap +++ b/library/MYDDAS/myddas_util_predicates.yap @@ -33,7 +33,8 @@ '$make_list_of_args'/4, '$where_exists'/2, '$build_query'/5, - '$assert_facts'/2 + '$assert_facts'/2, + '$lenght'/2 ]). :- use_module(myddas,[ @@ -364,4 +365,9 @@ '$assert_facts'(Module,Fact):- Module:Fact,!. '$assert_facts'(Module,Fact):- - assert(Module:Fact). \ No newline at end of file + assert(Module:Fact). + +'$lenght'([],0). +'$lenght'([_|T],Sum):- + '$lenght'(T,Num), + Sum is Num + 1.