This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/library/MYDDAS/myddas_errors.ypp
2010-05-23 18:24:24 +01:00

169 lines
5.2 KiB
Plaintext
Executable File

/*************************************************************************
* *
* 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 \== [].