git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1465 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
124 lines
4.2 KiB
Prolog
124 lines
4.2 KiB
Prolog
/*************************************************************************
|
|
* *
|
|
* 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,
|
|
'$db_my_error'/2
|
|
]).
|
|
|
|
:- use_module(myddas_util_predicates).
|
|
|
|
% must have only one relation
|
|
'$error_checks'(db_my_insert3(_,_,_)):-!.
|
|
'$error_checks'(db_my_insert2(_,Conn,[query(Att,[rel(Relation,_)],_)])) :- !,
|
|
% Number of fields of the Relation, must be
|
|
% equal to the number of attributes
|
|
c_db_my_number_of_fields(Relation,Conn,Arity),
|
|
length(Att,Arity),
|
|
% All fields must be Instanciated ( FALTA POR O NULL )
|
|
'$make_a_list'(Arity,FieldsProperties),
|
|
c_db_my_get_fields_properties(Relation,Conn,FieldsProperties),
|
|
'$check_fields'(Att,FieldsProperties).
|
|
%'$error_checks'(Preddb_Call):-
|
|
%'$do_error'(db_my_error(incompatible_db_predicate,PredCall)).
|
|
|
|
'$error_checks'(db_my_open(Host,User,Password,Db,Conn)) :- !,
|
|
nonvar(Host), % == \+var(Host)
|
|
nonvar(User),
|
|
nonvar(Password),
|
|
nonvar(Db),
|
|
atom(Conn),
|
|
get_value(Conn,[]). % Nao pode ter nenhum valor atribuido
|
|
'$error_checks'(db_my_close(_)) :- !.
|
|
'$error_checks'(db_my_import(RelationName,PredName,_)) :- !,
|
|
nonvar(RelationName),
|
|
nonvar(PredName).
|
|
'$error_checks'(db_my_view(PredName,DbGoal,_)) :- !,
|
|
nonvar(DbGoal),
|
|
nonvar(PredName).
|
|
'$error_checks'(db_my_number_of_fields(RelationName,_,_)) :- !,
|
|
nonvar(RelationName).
|
|
'$error_checks'(db_my_get_attributes_types(RelationName,_,_)) :- !,
|
|
nonvar(RelationName).
|
|
'$error_checks'(db_my_describe(Relation,_)) :- !,
|
|
nonvar(Relation).
|
|
'$error_checks'(db_my_show_tables(_)):- !.
|
|
'$error_checks'(db_my_sql_select(_,SQL,LA)):- !,
|
|
nonvar(SQL),
|
|
var(LA).
|
|
'$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(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 \== [].
|
|
|
|
% must have only one relation
|
|
%'$error_checks'(db_insert(_,_,_)):-!.
|
|
'$error_checks'(db_odbc_insert3(_,_,_)):-!.
|
|
'$error_checks'(db_odbc_insert2(PredName,Conn,[query(Att,[rel(Relation,_)],_)])) :- !,
|
|
% Number of fields of the Relation, must be
|
|
% equal to the number of attributes
|
|
c_db_odbc_number_of_fields(Relation,Conn,Arity),
|
|
length(Att,Arity),
|
|
% All fields must be Instanciated ( FALTA POR O NULL )
|
|
'$make_a_list'(Arity,FieldsProperties),
|
|
c_db_odbc_get_fields_properties(Relation,Conn,FieldsProperties),
|
|
'$check_fields'(Att,FieldsProperties).
|
|
%'$error_checks'(PredCall):-
|
|
%'$do_error'(db_error(incompatible_db_predicate,PredCall)).
|
|
|
|
'$error_checks'(db_odbc_open(Host,User,Password,Conn)) :- !,
|
|
nonvar(Host), % == \+var(Host)
|
|
nonvar(User),
|
|
nonvar(Password),
|
|
atom(Conn),
|
|
get_value(Conn,[]). % Nao pode ter nenhum valor atribuido
|
|
'$error_checks'(db_odbc_close(_)) :- !.
|
|
'$error_checks'(db_odbc_import(RelationName,PredName,_)) :- !,
|
|
nonvar(RelationName),
|
|
nonvar(PredName).
|
|
'$error_checks'(db_odbc_view(PredName,DbGoal,Connection)) :- !,
|
|
nonvar(DbGoal),
|
|
nonvar(PredName).
|
|
'$error_checks'(db_odbc_number_of_fields(RelationName,Connection,Arity)) :- !,
|
|
nonvar(RelationName).
|
|
'$error_checks'(db_odbc_get_attributes_types(RelationName,Connection,TypesList)) :- !,
|
|
nonvar(RelationName).
|
|
'$error_checks'(db_odbc_sql_select(Connection,SQL,LA)):- !,
|
|
nonvar(SQL),
|
|
var(LA).
|
|
% 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 \== [].
|
|
|
|
|
|
|
|
'$db_my_error'(ERROR,_):-var(ERROR),!.
|
|
'$db_my_error'(2005,c_db_my_connect(Host,User,Password,Db,Connection)):-!,
|
|
write(Host),nl. |