Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Reconstrucao de indices
Message
From
11/07/2002 11:12:22
 
 
To
08/07/2002 15:15:12
Jadir Junior
Fluminense Football Club
Niteroi, Brazil
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Miscellaneous
Thread ID:
00675404
Message ID:
00677553
Views:
17

Boa tarde, vc poderia mostrtar esta rotina ?
muito Obrigado !!!!!!!


Boa tarde. A pesar da demora, aí vai:
********************** Início do click do botão que Indexa ********************** 
thisform.Recria()
***
thisform.Indexar("Dados\Acoes", "i_codigo", "Codigo", .t.)
thisform.Indexar("Dados\Acoes", "c_acao",   "Acao",   .f.)
********************** Fim do click do botão que Indexa ********************** 

********************** Início do Método Recria ********************** 
* 1 - apaga o Banco de Dados
* 2 - abre todas as tabelas com a intenção de liberá-las do banco apagado
* 3 - recria o Banco de Dados
* 4 - adiciona as tabelas
Local laCriaBD[1], liCriaBD, lcArq
***
close tables all 
close databases all 
* 1 - apaga o Banco de Dados
delete file "Dados\NomeDoBanco.*" 
ADIR(laCriaBD, "Dados\*.DBF")
***
for liCriaBD = 1 to alen(laCriaBD, 1)
  lcArq = AllTrim(laCriaBD(liCriaBD, 1))
  lcArq = substr(lcArq, 1, len(lcArq) - 4)
  KEYBOARD "{D}"
  * 2 - abre todas as tabelas com a intenção de liberá-las do banco apagado
  use "Dados\" + lcArq exclusive 
  delete tag all off Dados\&lcArq..cdx
endfor && for liCriaBD = 1 to alen(laCriaBD, 1)
KEYBOARD "" clear
Use
***
* 3 - recria o Banco de Dados
* Cuidado! se, no seu banco, tiver StoredProcedures terá que utilizar o GenDBC pra recriar o banco
Create DataBase "Dados\NomeDoBanco" 
Open DataBase "Dados\NomeDoBanco" exclusive
***
for liCriaBD = 1 to alen(laCriaBD, 1)
  * 4 - adiciona as tabelas
  add table "Dados\" + AllTrim(laCriaBD(liCriaBD,1))
EndFor && for iRecriaBD = 1 to alen(aRecriaBD, 1)
********************** Fim do Método Recria ********************** 



********************** Início do Método Indexar ********************** 
Lparameters cArquivo, cCampo, cTag, lPrim
* Neste exemplo não estou preocupado com perfumaria, 
* mas aqui você vai querer um ProgressBar tudo, bonitinho
if used("&cArquivo")
  sele &cArquivo
endif
use &cArquivo exclusive
if lPrim
  ALTER TABLE &cArquivo ADD PRIMARY KEY &cCampo TAG &cTag
else  
  INDEX ON &cCampo TAG &cTag ADDITIVE
endif  
********************** Fim do Método Indexar ********************** 
Previous
Reply
Map
View

Click here to load this message in the networking platform