Página 1 de 1
Relacionamento entre DBFs, é possivel ?
Enviado: 14 Mai 2014 13:17
por bencz
Jovens, boa tarde!
Uma vez, li no livro ( Clipper 5.2 - Ferramentas Poderosas - Stephen Straley ), alguma coisa sobre relacionamento entre DBFs, alguem sabe me explicar como fazer, como funciona exatamente etc

?
Isso cabe mais por uma questão de curiosidade mesmo!!
Relacionamento entre DBFs, é possivel ?
Enviado: 14 Mai 2014 13:31
por alxsts
Olá!
Pesquise o comando
SET RELATION ou a função
DBSETRELATION().
Relacionamento entre DBFs, é possivel ?
Enviado: 14 Mai 2014 16:17
por bencz
Certo, só q agora, não estou conseguindo botar p/ funcionar esse trem ai!!!
haha

Tem algum exemplo mais COMPLETO ?
Inclusive da criação do DB, tipos e etc ?
Relacionamento entre DBFs, é possivel ?
Enviado: 14 Mai 2014 17:53
por Toledo
Segue um exemplo:
Código: Selecionar todos
PROCEDURE Main()
LOCAL aStruct1 := { ;
{ "CODIGO", "C", 3, 0 }, ;
{ "NOME" , "C",30, 0 }}
LOCAL aStruct2 := { ;
{ "DATA" , "D", 8, 0 }, ;
{ "NOTA" , "C", 5, 0 }, ;
{ "COD_CLI" , "C", 5, 0 }}
CLS
/* Criando os DBF */
DbCreate( "clientes", aStruct1 )
DbCreate( "vendas", aStruct2 )
/* abrindo o arquivo CLIENTES e incluindo alguns registros */
Use clientes New
index on CODIGO to cli1
Clientes->( DbAppend() )
REPLACE codigo WITH "001", nome WITH "PAULO TOLEDO"
Clientes->( DbAppend() )
REPLACE codigo WITH "002", nome WITH "ALEXANDRE SANTOS"
Clientes->( DbAppend() )
REPLACE codigo WITH "003", nome WITH "ALEXANDRE BENCZ"
/* abrindo o arquivo VENDAS e incluindo alguns registros */
Use vendas New
index on DTOS(data) to vends1
vendas->( DbAppend() )
REPLACE data WITH DATE()-10, nota WITH "00101", cod_cli WITH "002"
vendas->( DbAppend() )
REPLACE data WITH DATE()-9, nota WITH "00102", cod_cli WITH "003"
vendas->( DbAppend() )
REPLACE data WITH DATE()-8, nota WITH "00103", cod_cli WITH "001"
vendas->( DbAppend() )
REPLACE data WITH DATE()-7, nota WITH "00104", cod_cli WITH "003"
vendas->( DbAppend() )
REPLACE data WITH DATE()-6, nota WITH "00105", cod_cli WITH "001"
vendas->( DbAppend() )
REPLACE data WITH DATE()-5, nota WITH "00106", cod_cli WITH "002"
vendas->( DbAppend() )
REPLACE data WITH DATE()-4, nota WITH "00107", cod_cli WITH "002"
vendas->( DbAppend() )
REPLACE data WITH DATE()-3, nota WITH "00108", cod_cli WITH "003"
/* fazendo o relacionamento do arquivo CLIENTES pelo campo
COD_CLI do arquivo VENDAS */
* Sintaxe: Set Relation To <Campo> Into <Alias>
SET RELATION TO COD_CLI INTO CLIENTES
GO TOP
DO WHILE !EOF()
? DATA, NOTA, COD_CLI, CLIENTES->NOME
SKIP
ENDDO
/* finalizando o relation */
SET RELATION TO
CLOSE ALL
FERASE("CLIENTES.DBF")
FERASE("CLI1.NTX")
FERASE("VENDAS.DBF")
FERASE("VENDS1.NTX")
RETU
Então conforme o conteúdo do campo COD_CLI, automaticamente no arquivo CLIENTES é posicionado no registro correspondente.
Abraços,
Relacionamento entre DBFs, é possivel ?
Enviado: 15 Mai 2014 08:32
por bencz
Pois é, pedi um exemplo completo, pois eu estava achando que tinha que criar algum campo especial na DB... algum tipo de key, sei la!!!
Muito interessante, p/ ser bem sincero com vocês, DBF e seus comando, é meio que um mistério p/ mim.... como buscar elementos da tabela, e etc... ):
Muito obrigado, Toledo e alxsts!!!