Clipper On Line • Ver Tópico - Criação de arquivos e indexação CDX

Criação de arquivos e indexação CDX

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

Criação de arquivos e indexação CDX

Mensagempor Vandi » 06 Jun 2012 14:01

Boa tarde,

Alguém pode me dizer se o procedimento abaixo está correto? Em caso negativo, o que está errado?
Func Main()

request dbfcdx
RddSetDefault( "DBFCDX" )
DbSetDriver( "DBFCDX" )

set date brit
set epoc to 1980
set delete on

Private _stru:={}

if !file("Empresas.dbf") // Se não existe o arquivo, cria o mesmo

    aadd(_stru,{ "Codi" ,"C" ,05,0})
    aadd(_stru,{ "Empr" ,"C" ,40,0})
    aadd(_stru,{ "Ende" ,"C" ,40,0})
    aadd(_stru,{ "Bair" ,"C" ,20,0})
    aadd(_stru,{ "Muni" ,"C" ,20,0})
    aadd(_stru,{ "Esta" ,"C" ,02,0})

    dbcreate( 'Empresas.dbf', _stru)

endif

IF!FILE("Empresas.cdx")
    Use Empresas   ALIAS   Empr SHARED NEW
    INDEX ON Empr->Codi      TAG  mCodi TO Empresas.CDX
    INDEX ON Empr->Empr      TAG  mEmpr TO Empresas.CDX
    USE
ENDIF


Gilvandi
Nota de Moderação:
Pablo César: O presente tópico foi movido da seção HwGui, uma vez que seu conteúdo não tem relação com os objetivos daquela seção, onde só podem constar dúvidas técnicas de programação diretamente relacionadas com a HwGui.
Vandi
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 83
Data de registro: 16 Set 2011 23:26
Cidade/Estado: Brasilia-DF
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Criação de arquivos e indexação CDX

Mensagempor fladimir » 06 Jun 2012 14:40

Olá colega, eu particularmente não uso o Alias->ChavedoIndice na composição do mesmo como vc fez, não sei se isto seria errado...

... mas Coincidentemente ou não ontem em alguns testes com criação de janela e etc em FiveWin (suponho q o colega trabalhe com HWGUI devido o local da postagem) tive problemas justamente ao compor e trabalhar com índices, pois o colega q estava ministrando a aula tentou formar os índices da maneira q vc exemplificou e eu sugeri a mudança para sem os Alias e deu certo, pois antes estava dando erro de Corruption Detect, ao tentar trabalhar com os índices.

Não sei o q motivou a pergunta do colega, mas se foi algum erro talvez seja conforme a situação a qual presenciei acima descrita, se for, tente tirar os alias da composição do índice e teste, dizendo depois se deu certo.

Se não for, precisaríamos de maiores informações sobre qual seria a real necessidade / situação do colega para podermos opinar de forma mais adequada.

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Criação de arquivos e indexação CDX

Mensagempor alxsts » 06 Jun 2012 14:50

Olá!

Concordo com o Fladimir. Lembro-me de ter tido problemas com isso.

Alem da alteração sugerida pelo Fladimir, altere também o modo de abertura do arquivo. Ña criação de índices, o indicado é USE EXCLUSIVE.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Criação de arquivos e indexação CDX

Mensagempor Vandi » 06 Jun 2012 16:42

(RESOLVIDO)

Caros Fladimir e Alexandre,
Boa tarde...

Baseando-me nas orientações de vcs, modifiquei a rotina (abaixo) e funcionou perfeitamente.
Func Main()

request dbfcdx
RddSetDefault( "DBFCDX" )
DbSetDriver( "DBFCDX" )

set date brit
set epoc to 1980
set delete on

Private _stru:={}

if !file("Empresas.dbf") // Se não existe o arquivo, cria o mesmo

    aadd(_stru,{ "Codi" ,"C" ,05,0})
    aadd(_stru,{ "Empr" ,"C" ,40,0})
    aadd(_stru,{ "Ende" ,"C" ,40,0})
    aadd(_stru,{ "Bair" ,"C" ,20,0})
    aadd(_stru,{ "Muni" ,"C" ,20,0})
    aadd(_stru,{ "Esta" ,"C" ,02,0})

    dbcreate( 'Empresas.dbf', _stru)

endif

IF!FILE("Empresas.cdx")
    Use Empresas
    INDEX ON Codi     TAG  mCodi TO Empresas.CDX
    INDEX ON Empr     TAG  mEmpr TO Empresas.CDX
    USE
ENDIF

Use Empresas   ALIAS   Empr SHARED NEW
Set Order To Tag mCodi


Obrigado pela colaboração

Gilvandi
Vandi
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 83
Data de registro: 16 Set 2011 23:26
Cidade/Estado: Brasilia-DF
Curtiu: 0 vez
Mens.Curtidas: 1 vez




Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 9 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro