Outros exemplos de flexibilidade para os colegas que não ficaram esclarecidos
Utilizando querys:
Utilizando a sintax VisualDBase com SQL (Para outras linguagens terá de haver adaptação da sintaxe) de uma FORMA BASICA e SIMPLES,
abrindo 2 tabelas para por exemplo verficar se existe o registo da entidade como cliente e fornecedor através do NIF
supondo que nas 2 tabelas o campo ncontribuinte encontra-se indexado.
* Abrir tabela de Clientes
a=new query()
a.sql="select * from clintes"
a.active=true //abrir a query
a.rowset.indexname="ncontribuinte"
a.rowset.first() // força para o inico da tabela
* Abrir tabela de Fornecedores
b=new query()
b.sql="select * from fornecedores"
b.active=true
b.rowset.indexname="ncontribuinte" //verificando a existência
b.rowset.first()
// atendendo que a variavel de entrada para a pesquisa do NIF é Wncontribuinte
.... GET Wncontribinte //obtendo o valor do NIF a consultar
PRIVATE INT controlderegisto
controloderegisto=0
if a.rowset.findkey(Wncontribuinte) // pesquisa se existe registo com esse nº de contribuinte em CLientes
controloderegisto=1
EscreverMensagem="A entidade já se encontra registada como Cliente"
endif
if b.rowset.findkey(Wncontribuinte) // pesquisa se existe registo com esse nº de contribuinte em Fornecedores
controloderegisto=1
EscreverMensagem="A entidade já se encontra registada como Fornecedor"
endif
if controloderegisto=0
EscreverMensagem="A entidade não se encontra registada como Cliente nem como Fornecedor"
endif
a.active=false // fechar a query()
b.active=false // fechar a query()
***************************
Existe forma de juntar 2 tabelas ou mais na mesma query utilizando campos primarios
Exemplo de um orçamento: COnsultar a ficha mais as linhas correspondentes, sendo a variavel de entrada do nº de orçamento a consultar "whnumero"
E=new query()
E.sql="select * from orcamentoficha,orcamentolinhas ;
where orcamentoficha.numero=orcamentolinhas.numero and orcamentoficha.numero="+whnumero+""
//o Campo "numero" será o campo chave que irá ligar as 2 tabelas associado a variavel whnumero
E.active=true