/************************************************************************* * * * 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_errors.yap * * Last rev: * * mods: * * comments: MYDDAS errors checks and errors Messages * * * *************************************************************************/ :- module(myddas_errors,[ '$error_checks'/1 ]). :- use_module(myddas_util_predicates,[ '$make_a_list'/2, '$check_fields'/2, '$check_list_on_list'/2 ]). '$error_checks'(db_abolish(ModulePredName,Arity)):-!, (ModulePredName = Module:PredName -> atom(Module), atom(PredName) ; atom(ModulePredName) ), number(Arity). '$error_checks'(db_show_databases(Connection)):- !, atom(Connection). '$error_checks'(db_show_database(Connection,_)):- !, atom(Connection). '$error_checks'(db_my_sql_mode(Connection,_)):- !, atom(Connection). '$error_checks'(db_change_database(Connection,Database)):- !, atom(Connection), atom(Database). '$error_checks'(db_prolog_select_multi(Connection,DbGoalsList,_)):- !, atom(Connection), is_list(DbGoalsList). '$error_checks'(db_multi_queries_number(Connection,Number)):-!, atom(Connection), ( var(Number) -> true ; number(Number), Number > 0 ). '$error_checks'(db_command(Connection,SQL)):-!, atom(Connection), nonvar(SQL). #ifdef MYDDAS_STATS '$error_checks'(db_stats(_,List)):-!, var(List). '$error_checks'(db_stats_time(Reference,Time)):-!, number(Reference), var(Time). #endif '$error_checks'(db_export_view(Connection,TableViewName,SQLorDbGoal,FieldsInf)):-!, atom(Connection), ( atom(TableViewName) -> atom(SQLorDbGoal) ; true ), ( atom(SQLorDbGoal) -> atom(TableViewName) ; true ), is_list(FieldsInf). '$error_checks'(db_create_table(Connection,TableName,FieldsInf)):-!, atom(Connection), atom(TableName), FieldsInf = [_|_]. '$error_checks'(db_insert3(Connection,RelationName,PredName)):-!, atom(Connection), atom(RelationName), atom(PredName). '$error_checks'(db_insert2(Connection,_,[query(Att,[rel(Relation,_)],_)])) :- !, atom(Connection), get_value(Connection,Con), % Number of fields of the Relation, must be % equal to the number of attributes c_db_connection_type(Con,ConType), ( ConType == mysql -> c_db_my_number_of_fields(Relation,Con,Arity) ; c_db_odbc_number_of_fields(Relation,Con,Arity) ), length(Att,Arity), % All fields must be Instanciated ( FALTA POR O NULL ) '$make_a_list'(Arity,FieldsProperties), ( ConType == mysql -> c_db_my_get_fields_properties(Relation,Con,FieldsProperties) ; c_db_odbc_get_fields_properties(Relation,Con,FieldsProperties) ), '$check_fields'(Att,FieldsProperties). '$error_checks'(db_open(mysql,Connection,Host/Db/Port/_,User,Password)) :- !, nonvar(Host), % == \+var(Host) nonvar(User), nonvar(Password), nonvar(Db), integer(Port), atom(Connection), get_value(Connection,[]). % Nao pode ter nenhum valor atribuido '$error_checks'(db_open(odbc,Connection,ODBCEntry,User,Password)) :- !, nonvar(ODBCEntry), % == \+var(ODBCEntry) nonvar(User), nonvar(Password), atom(Connection), get_value(Connection,[]). % Nao pode ter nenhum valor atribuido '$error_checks'(db_view(Connection,Pred,DbGoal)) :- !, atom(Connection), nonvar(DbGoal), nonvar(Pred), nonvar(DbGoal), Pred =.. [_|_], DbGoal =.. [_|_]. %'$check_list_on_list'(PredArgs,DbGoalArgs). '$error_checks'(db_import(Connection,RelationName,PredName)) :- !, atom(Connection), atom(RelationName), atom(PredName). '$error_checks'(db_get_attributes_types(Connection,RelationName,_)) :- !, atom(Connection), nonvar(RelationName). '$error_checks'(db_call_procedure(_,Procedure,Args,LA)) :- !, nonvar(Procedure), ground(Args), not ground(LA). '$error_checks'(db_sql(Connection,SQL,LA)):- !, atom(Connection), nonvar(SQL), not ground(LA). '$error_checks'(db_number_of_fields(Connection,RelationName,_)) :- !, atom(Connection), nonvar(RelationName). '$error_checks'(db_close(Connection)) :- !, atom(Connection). % must have only one relation '$error_checks'(db_datalog_describe(Relation,_)) :- !, nonvar(Relation). '$error_checks'(db_describe(Connection,Relation,_)) :- !, atom(Connection), nonvar(Relation). '$error_checks'(db_my_show_tables(_)):- !. '$error_checks'(db_is_database_predicate(PredName,Arity,Module)):-!, nonvar(PredName), nonvar(Arity), nonvar(Module). % Prevent the error of given an atom that has no value '$error_checks'(get_value(Connection,Con)) :- !, % This also prevents the case of giving the number of the connection % as an argument atom(Connection), var(Con), get_value(Connection,Value), Value \== []. % Prevent the error of given an atom that has no value '$error_checks'(get_value(Conn,Connection)) :- !, % This also prevents the case of giving the number of the connection % as an argument atom(Conn), var(Connection), get_value(Conn,Value), Value \== [].