Cual es mejor metodo para crear DBF?

Cual es mejor metodo para crear DBF?

Postby noe aburto » Tue Jan 31, 2017 7:27 pm

Saludos.

Con la experiencia de archivos corruptos DBF me gustaria saber como puedo crear los archivos DBF desde fwh o xHarbour, dejando atras al DbCreate>() o usar el FoxPlus para su creacion. habra alguna funcion de bajo nivel para hecerlo?

Gracias.
Noé Aburto Sánchez
Tec. Prog. de Sistemas. -Morelia, Mich. México.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com
User avatar
noe aburto
 
Posts: 418
Joined: Wed Nov 26, 2008 6:33 pm
Location: Morelia, Mich. Mexico.

Re: Cual es mejor metodo para crear DBF?

Postby Antonio Linares » Tue Jan 31, 2017 10:15 pm

Noé,

Usar DbCreate() es la manera correcta de hacerlo.

Si usas una versión reciente de Harbour/xHarbour no deberias tener ningún problema de corrupción
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41326
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Cual es mejor metodo para crear DBF?

Postby karinha » Wed Feb 01, 2017 12:02 pm

Siempre uso DbCreate() y no tengo problemas con indices corruptos. Explique mejor el que pasa.

Code: Select all  Expand view

#Include "FiveWin.Ch"
#Include "CorGet.Ch"
#Include "Directry.Ch"
#Include "SSay.Ch"

#Define CLR_LGRAY    RGB(230,230,230)
#Define CLR_LGREEN   RGB(190,215,190)
#Define CLR_VERMELHO nRGB( 255, 000, 000 )
#Define CLR_AMARELO  nRGB( 255, 255, 000 )

FUNCTION CREARDBFS( oMeter, oText, oDlg, lEnd )

   FIELD RAZ_MATRIC, NUM_TICKET

   LOCAL cChave
   LOCAL nTotal := 100
   LOCAL DEONDEVEM
   LOCAL lExiste, cAlias, nConta
   LOCAL NOME_ARQ, NREGISTRO, cPathPleno

   PUBLIC XDA, XARQPED, XDIA, XMES, XANO

   CURSORWAIT()

   oMeter:Refresh()
   SysRefresh()

   DBCLOSEALL()

   IF .NOT. FILE( "CADETIQ.DBF" )

      oText:SetText( " Processando, Aguarde... Criando CADETIQ.DBF " )

      DbCreate( "CADETIQ.DBF", { { "RAZ_MATRIC", "C", 18, 00 }, ;
                                 { "DEST_NOME",  "C", 50, 00 }, ;
                                 { "NOME_ARTIS", "C", 50, 00 }, ;
                                 { "END",        "C", 40, 00 }, ;
                                 { "NUMERO",     "C", 06, 00 }, ;
                                 { "COMPLEMENT", "C", 15, 00 }, ;
                                 { "BAI",        "C", 20, 00 }, ;
                                 { "CID",        "C", 20, 00 }, ;
                                 { "UF",         "C", 02, 00 }, ;
                                 { "CEP",        "C", 08, 00 }, ;
                                 { "ZONA",       "C", 30, 00 }, ;
                                 { "CGC",        "C", 18, 00 }, ;
                                 { "IE",         "C", 20, 00 }, ;
                                 { "CONTATO",    "C", 35, 00 }, ;
                                 { "VENDEDOR",   "C", 35, 00 }, ;
                                 { "RG",         "C", 13, 00 }, ;
                                 { "ORGEMISSOR", "C", 20, 00 }, ;
                                 { "TEL",        "C", 17, 00 }, ;
                                 { "TEL2",       "C", 17, 00 }, ;
                                 { "TEL3",       "C", 17, 00 }, ;
                                 { "RAMAL_1",    "C", 05, 00 }, ;
                                 { "RAMAL_2",    "C", 05, 00 }, ;
                                 { "CIC_CPF",    "C", 14, 00 }, ;
                                 { "DATA",       "C", 10, 00 }, ;
                                 { "DTNASC",     "D", 08, 00 }, ;
                                 { "ESTCIVIL",   "C", 14, 00 }, ;
                                 { "PROFISSAO",  "C", 20, 00 }, ;
                                 { "CARGO",      "C", 20, 00 }, ;
                                 { "ENDCOM",     "C", 50, 00 }, ;
                                 { "BAICOM",     "C", 18, 00 }, ;
                                 { "CIDCOM",     "C", 19, 00 }, ;
                                 { "CEPCOM",     "C", 09, 00 }, ;
                                 { "TELCOM",     "C", 14, 00 }, ;
                                 { "RAMAL",      "C", 04, 00 }, ;
                                 { "RAMAL2",     "C", 04, 00 }, ;
                                 { "ATIVO",      "C", 09, 00 }, ;
                                 { "CATEGORIA",  "C", 02, 00 }, ;
                                 { "DEPEND1",    "C", 45, 00 }, ;
                                 { "DEPEND2",    "C", 45, 00 }, ;
                                 { "DEPEND3",    "C", 45, 00 }, ;
                                 { "DEPEND4",    "C", 45, 00 }, ;
                                 { "DEPEND5",    "C", 45, 00 }, ;
                                 { "DEPEND6",    "C", 45, 00 }, ;
                                 { "DEPEND7",    "C", 45, 00 }, ;
                                 { "GRAU1",      "C", 25, 00 }, ;
                                 { "GRAU2",      "C", 25, 00 }, ;
                                 { "GRAU3",      "C", 25, 00 }, ;
                                 { "GRAU4",      "C", 25, 00 }, ;
                                 { "GRAU5",      "C", 25, 00 }, ;
                                 { "GRAU6",      "C", 25, 00 }, ;
                                 { "GRAU7",      "C", 25, 00 }, ;
                                 { "DTCOMPRA",   "C", 08, 00 }, ;
                                 { "DTRESERVA",  "C", 08, 00 }, ;
                                 { "LOCPAGTO",   "C", 50, 00 }, ;
                                 { "DTVENCTO",   "D", 08, 00 }, ;
                                 { "DT_VENCTO",  "C", 02, 00 }, ;
                                 { "DTDOCTO",    "D", 08, 00 }, ;
                                 { "NUMDOCTO",   "C", 10, 00 }, ;
                                 { "ACEITE",     "C", 01, 00 }, ;
                                 { "VALORDOC",   "N", 12, 02 }, ;
                                 { "INSTRUC1",   "C", 50, 00 }, ;
                                 { "INSTRUC2",   "C", 50, 00 }, ;
                                 { "INSTRUC3",   "C", 50, 00 }, ;
                                 { "INSTRUC4",   "C", 50, 00 }, ;
                                 { "INSTRUC5",   "C", 50, 00 }, ;
                                 { "RESGRAMAS",  "C", 05, 00 }, ;
                                 { "VENCTO",     "C", 02, 00 }, ;
                                 { "AGENTE",     "C", 05, 00 }, ;
                                 { "NORDCOMPRA", "C", 02, 00 }, ;
                                 { "LOCALIZA",   "C", 03, 00 }, ;
                                 { "QUADRANTE",  "C", 02, 00 }, ;
                                 { "CAIXINHA",   "C", 01, 00 }, ;
                                 { "INDICACAO",  "C", 15, 00 }, ;
                                 { "IDADE",      "C", 03, 00 }, ;
                                 { "DRT",        "C", 08, 00 }, ;
                                 { "HOMEPAGE",   "C", 50, 00 }, ;
                                 { "E_MAIL",     "C", 50, 00 }, ;
                                 { "EMAIL2",     "C", 50, 00 }, ;
                                 { "OBS1",       "C", 72, 00 }, ;
                                 { "OBS2",       "C", 72, 00 }, ;
                                 { "CESTA_DIA",  "C", 02, 00 }, ;
                                 { "ENTREGA",    "C", 02, 00 }, ;
                                 { "PRAZO_PGTO", "C", 02, 00 }, ;
                                 { "COTACAO",    "C", 01, 00 }, ;
                                 { "FEITO",      "C", 01, 00 }, ;
                                 { "MES_PEDIDO", "C", 02, 00 }, ;
                                 { "CLI_DESDE",  "D", 08, 00 }, ;
                                 { "FOTOS",      "C", 23, 00 }, ;
                                 { "PLANO",      "N", 02, 00 }, ;
                                 { "SENHA",      "C", 20, 00 }, ;
                                 { "RESTRICAO",  "C", 50, 00 }, ;
                                 { "HISTINADIA", "C", 250,00 }, ;
                                 { "HISTIPARTB", "C", 250,00 }, ;
                                 { "DT_ULTCONS", "D", 08, 00 }, ;
                                 { "MALADIRETA", "C", 01, 00 }, ;
                                 { "BOLETO",     "C", 01, 00 }, ;
                                 { "COD_CAPTAD", "N", 04, 00 }, ;
                                 { "CAPTADOR",   "C", 30, 00 }, ;
                                 { "COD_TIPO_C", "N", 04, 00 }, ;
                                 { "TIPOCLIENT", "C", 30, 00 }, ;
                                 { "DT_LIGACAO", "D", 08, 00 }, ;
                                 { "HORA_LIGAC", "C", 08, 00 }, ;
                                 { "PROXCONTAT", "D", 08, 00 }, ;
                                 { "COD_IMOVEL", "C", 18, 00 }, ;
                                 { "COMPRADO",   "C", 38, 00 }, ;
                                 { "OBSERVA_01", "C", 72, 00 }, ;
                                 { "OBSERVA_02", "C", 72, 00 }, ;
                                 { "OBSERVA_03", "C", 72, 00 }, ;
                                 { "OBSERVA_04", "C", 72, 00 }, ;
                                 { "OBSERVA_05", "C", 72, 00 }, ;
                                 { "OBSERVA_06", "C", 72, 00 }, ;
                                 { "OBSERVA_07", "C", 72, 00 }, ;
                                 { "OBSERVA_08", "C", 72, 00 }, ;
                                 { "LIMITECRED", "N", 12, 02 }, ;
                                 { "SALDODEVED", "N", 12, 02 }, ;
                                 { "LIMDISPONI", "N", 12, 02 }, ;
                                 { "CONVENIO",   "C", 05, 00 }, ;
                                 { "DESCCONVEN", "C", 40, 00 }, ;
                                 { "MENSALISTA", "C", 01, 00 }, ;
                                 { "DIA_VENCTO", "C", 02, 00 }, ;
                                 { "CODTIP",     "N", 06, 00 }, ;
                                 { "TIPOCLI",    "C", 30, 00 }, ;
                                 { "LIBERADO",   "L", 01, 00 }, ;
                                 { "RESTRITO",   "L", 01, 00 }, ;
                                 { "BLOQUEAR",   "L", 01, 00 } } )

      DbCloseAll()  

   ENDIF

    IF !FILE( "CADFORNE.DBF" )

        oText:SetText( "Processando, Aguarde... Criando CADFORNE.DBF" )

        DbCreate( "CADFORNE.DBF", { { "MATRICULA",  "C", 018, 000 }, ;
                                    { "RAZAO",      "C", 050, 000 }, ;
                                    { "END",        "C", 050, 000 }, ;
                                    { "BAI",        "C", 020, 000 }, ;
                                    { "CID",        "C", 020, 000 }, ;
                                    { "CEP",        "C", 009, 000 }, ;
                                    { "VEN",        "C", 025, 000 }, ;
                                    { "CGC",        "C", 018, 000 }, ;
                                    { "CIC_CPF",    "C", 014, 000 }, ;
                                    { "INS",        "C", 015, 000 }, ;
                                    { "DAT",        "D", 008, 000 }, ;
                                    { "VALOR",      "N", 016, 002 }, ;
                                    { "LIMITECRED", "N", 015, 002 }, ;
                                    { "PRODUTO",    "C", 070, 000 }, ;
                                    { "TEL",        "C", 017, 000 }, ;
                                    { "TEL2",       "C", 017, 000 }, ;
                                    { "TEL3",       "C", 017, 000 }, ;
                                    { "CONTATO",    "C", 035, 000 }, ;
                                    { "VENDEDOR",   "C", 035, 000 }, ;
                                    { "PRAZO_PGTO", "C", 002, 000 }, ;
                                    { "E_MAIL",     "C", 045, 000 }, ;
                                    { "FORMA_PGTO", "C", 025, 000 }, ;
                                    { "HOMEPAGE",   "C", 050, 000 }, ;
                                    { "ULTCOMPRA",  "D", 008, 000 }, ;
                                    { "ALIQICMS",   "N", 005, 002 }, ;
                                    { "CCONTABIL",  "C", 020, 000 }, ;
                                    { "OBS1",       "C", 032, 000 }, ;
                                    { "OBS2",       "C", 032, 000 } } )
         DbCloseAll()

    ENDIF

   IF .NOT. FILE( "TABPROD.DBF" )

      oText:SetText( " Processando, Aguarde... Criando TABPROD.DBF " )

      DbCreate( "TABPROD.DBF", { { "CODIGO",     "C", 13, 00 }, ;
                                 { "DESCRICAO",  "C", 35, 00 }, ;
                                 { "MARCA",      "C", 35, 00 }, ;
                                 { "ORDEMMONTA", "C", 03, 00 }, ;
                                 { "TIP_CALC",   "C", 01, 00 }, ;
                                 { "AUTO",       "C", 01, 00 }, ;
                                 { "PERCENTO",   "N", 06, 02 }, ;
                                 { "DTCOMPRA",   "D", 08, 00 }, ;
                                 { "ULT_COMPRA", "D", 08, 00 }, ;
                                 { "QUANTIDADE", "N", 12, 02 }, ;
                                 { "PRCUSTO",    "N", 12, 02 }, ;
                                 { "VALOR",      "N", 15, 03 }, ;
                                 { "PRECO_2",    "N", 15, 03 }, ;
                                 { "PRECO_3",    "N", 15, 03 }, ;
                                 { "PRECO_4",    "N", 15, 03 }, ;
                                 { "PESOB",      "N", 15, 03 }, ;
                                 { "VALOR_ATAC", "N", 15, 03 }, ;
                                 { "PRECOPROMO", "N", 15, 03 }, ;
                                 { "PRMEDCUST8", "N", 15, 03 }, ;
                                 { "DTFINALPRO", "D", 08, 00 }, ;
                                 { "DTULTVENDA", "D", 08, 00 }, ;
                                 { "MARGELUCRO", "N", 15, 03 }, ;
                                 { "COD_SECAO",  "C", 05, 00 }, ;
                                 { "SECAO",      "C", 15, 00 }, ;
                                 { "COD_GRUPO",  "C", 06, 00 }, ;
                                 { "GRUPO",      "C", 15, 00 }, ;
                                 { "QTDEULTCPA", "N", 12, 02 }, ;
                                 { "DTULTATUAL", "D", 08, 00 }, ;
                                 { "VLTOTESTOQ", "N", 15, 02 }, ;
                                 { "EST_MINIMO", "N", 15, 00 }, ;
                                 { "COR",        "C", 10, 00 }, ;
                                 { "TAMANHO",    "C", 04, 00 }, ;
                                 { "DTULTINVEN", "D", 08, 00 }, ;
                                 { "FORMULA",    "C", 01, 00 }, ;
                                 { "CNPJFORNEC", "C", 18, 00 }, ;
                                 { "UNIDADE",    "C", 07, 00 }, ;
                                 { "QTDNACAIXA", "C", 04, 00 }, ;
                                 { "COMISVENDA", "N", 05, 02 }, ;
                                 { "ICMS",       "N", 06, 02 }, ;
                                 { "CODSITTRIB", "C", 02, 00 }, ;
                                 { "VALIDADE",   "D", 08, 00 }, ;
                                 { "CODCLASIPI", "C", 01, 00 }, ;
                                 { "COMVENDOPC", "N", 05, 02 }, ;
                                 { "TIPPESOBAL", "C", 01, 00 }, ;
                                 { "VALIDBALAN", "C", 03, 00 }, ;
                                 { "REDUCAO",    "N", 05, 02 }, ;
                                 { "PROD_SERVI", "C", 01, 00 }, ;
                                 { "PLANO1_DE",  "N", 05, 00 }, ;
                                 { "PLANO1_ATE", "N", 05, 00 }, ;
                                 { "PLANO1_VLR", "N", 12, 02 }, ;
                                 { "PLANO2_DE",  "N", 05, 00 }, ;
                                 { "PLANO2_ATE", "N", 05, 00 }, ;
                                 { "PLANO2_VLR", "N", 12, 02 }, ;
                                 { "PLANO3_DE",  "N", 05, 00 }, ;
                                 { "PLANO3_ATE", "N", 05, 00 }, ;
                                 { "PLANO3_VLR", "N", 12, 02 }, ;
                                 { "PLANO4_DE",  "N", 05, 00 }, ;
                                 { "PLANO4_ATE", "N", 05, 00 }, ;
                                 { "PLANO4_VLR", "N", 12, 02 }, ;
                                 { "PLANO5_DE",  "N", 05, 00 }, ;
                                 { "PLANO5_ATE", "N", 05, 00 }, ;
                                 { "PLANO5_VLR", "N", 12, 02 }, ;
                                 { "PLANO6_DE",  "N", 05, 00 }, ;
                                 { "PLANO6_ATE", "N", 05, 00 }, ;
                                 { "PLANO6_VLR", "N", 12, 02 }, ;
                                 { "PLANO7_DE",  "N", 05, 00 }, ;
                                 { "PLANO7_ATE", "N", 05, 00 }, ;
                                 { "PLANO7_VLR", "N", 12, 02 }, ;
                                 { "PLANO8_DE",  "N", 05, 00 }, ;
                                 { "PLANO8_ATE", "N", 05, 00 }, ;
                                 { "PLANO8_VLR", "N", 12, 02 }, ;
                                 { "NCM",        "C", 12, 00 }, ;
                                 { "GONDOLA",    "C", 05, 00 }, ;
                                 { "PRATELEIRA", "C", 05, 00 }, ;
                                 { "VOLUME",     "C", 10, 00 }, ;
                                 { "COD_MOVIME", "N", 16, 00 }, ;
                                 { "TIPO_MOVIM", "C", 07, 00 }, ;
                                 { "DATA_MOVIM", "D", 08, 00 }, ;
                                 { "HORA_MOVIM", "C", 08, 00 }, ;
                                 { "NOVA_QTDE",  "N", 11, 02 }, ;
                                 { "ESTOQ_ANTE", "N", 12, 02 }, ;
                                 { "ESTOQ_ATUA", "N", 12, 02 }, ;
                                 { "NUM_DOCTO",  "C", 15, 00 }, ;
                                 { "DESC_MOVIM", "C", 50, 00 }, ;
                                 { "PRODPROPR",  "C", 01, 00 }, ;
                                 { "FORALINSN",  "C", 01, 00 }, ;
                                 { "GENERICSN",  "C", 01, 00 }, ;
                                 { "DESCPROMSN", "C", 01, 00 }, ;
                                 { "BRINDESN",   "C", 01, 00 }, ;
                                 { "ESTORNOSN",  "C", 01, 00 }, ;
                                 { "PESO_UNID",  "N", 07, 03 }, ;
                                 { "PESO_DESC",  "C", 08, 00 }, ;
                                 { "STRIB_SN",   "C", 01, 00 }, ;
                                 { "DATASTRIB",  "D", 08, 00 }, ;
                                 { "IVA",        "N", 06, 02 }, ;
                                 { "IVA_SP",     "N", 06, 02 }, ;
                                 { "IVA_MG",     "N", 06, 02 }, ;
                                 { "IVA_RS",     "N", 06, 02 }, ;
                                 { "CAIXASN",    "C", 01, 00 }, ;
                                 { "TPCAIXA",    "C", 04, 00 }, ;
                                 { "REDUICM",    "N", 06, 02 }, ;
                                 { "REDUICME",   "N", 06, 02 } } )

      DbCloseAll()  

   ENDIF

    IF !FILE( "EMPRESA.DBF" )

       oText:SetText( "Processando, Aguarde... Criando EMPRESA.DBF" )

      DbCreate( "EMPRESA.DBF", { { "NOME",       "C", 40, 00 }, ;
                                 { "END",        "C", 40, 00 }, ;
                                 { "BAIRRO",     "C", 30, 00 }, ;
                                 { "CIDADE",     "C", 40, 00 }, ;
                                 { "CGC",        "C", 18, 00 }, ;
                                 { "IE",         "C", 18, 00 }, ;
                                 { "TEL",        "C", 35, 00 }, ;
                                 { "FANTASIA",   "C", 20, 00 }, ;
                                 { "SERIALHD",   "C", 15, 00 }, ;
                                 { "EMAIL",      "C", 50, 00 }, ;
                                 { "SITE",       "C", 50, 00 }, ;
                                 { "SEQUENCIA",  "C", 14, 00 }, ;
                                 { "TIPO_EMPR",  "C", 15, 00 }, ;
                                 { "CRECI",      "C", 15, 00 }, ;
                                 { "NCGCCHAVE",  "N", 14, 00 }, ;
                                 { "DATA_INIC",  "D", 08, 00 }, ;
                                 { "DATA_FINA",  "D", 08, 00 } } )

       DbCloseAll()

    ENDIF

...

RETURN NIL
 


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7254
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Cual es mejor metodo para crear DBF?

Postby karinha » Wed Feb 01, 2017 12:04 pm

Noé, Podrias me enviar el FoxPlus.exe el que tengo és el foxBASE+ 2.10. Gracias, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7254
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 7 guests