Observe que
main_page//0
é um não-terminal, não um predicado. Para chamar seus predicados de banco de dados da main_page//0
, você precisa escrever algo como:main_page -->
{create_db_connect,
use_database,
query_to_database(X),
disconnect_database},
html(div('id="tab_c2"', p('~w')-[X])).
O
{}/1
construção permite que você chame predicados de (o corpo de) regras gramaticais. Sem ele, create_db_connect
e os outros seriam interpretados como chamadas para outros não terminais (create_db_connect//0
, ...). Normalmente, os não terminais são expandidos em predicados anexando dois argumentos. Daí os avisos que você recebeu:
Warning: create_db_connect/2, which is referenced by
Warning: /root/prologDev/el.pl:56:17: 1-st clause of main_page/2