Flexibiliade SQL

Re: Flexibiliade SQL

por Herberto Silva -
Número de respostas: 0
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