Página 1 de 1

Criar Dbf dentro do Programa!

Enviado: 07 Dez 2005 10:37
por Carlos.info
Ola como faco para criar um dbf novo dentro do programa ?

Obrigado.

Enviado: 07 Dez 2005 10:50
por Daniel
Eu crio os meus dbf no dbu.

Compile este programa e execulte no diretorio onde estao os dbf ele gera um prg com os arquivos de geracao do dbfs.

Código: Selecionar todos

cls
#include "directry.ch"
aFile1:= file:= {}
aDir:= Directory("*.DBF" , "D")
Aeval(aDir,{|aFile| AADD(aFile1, aFile[1])})
aSort(aFile1)
s:= 0
Set Printer To Gera_dbf.prg
Set Device To Printer
Set printer On
For b:= 1 To Len(aFile1)
   Use &(aFile1[b])
   Copy Structure Extended To temp
   Use temp
   xi:= 1
   While ! Eof()
      If xi == 1
        x2:=  "If !File(" + Chr(34) + Lower(aFile1[b]) + Chr(34) + ")"
        X3:=  "   aStructure := {}"
        @ s, 0 Say x2
        s++
        @ s, 0 Say x3
        s++
        xi:= 2
      EndIf
      x:= 10 - Len(RTrim(Field_Name))
      x1:= "aAdd( aStructure, { " + Chr(34) + RTrim(Field_Name) + Chr(34) + Space(x) +;
         ", " + Chr(34) + Field_Type + Chr(34) + ", " + Str(Field_Len) +;
         "," + Str(Field_Dec) + " })"
      @ s, 3 Say x1
      s++
      Skip
   End
   @ s, 3 Say "dbCreate(" +Chr(34) + Lower(aFile1[b]) + Chr(34) + ", aStructure)"
   s++
   @ s, 0 Say "EndIf"
   s+= 2
   Close temp
   FErase("temp.dbf")
Next
Set Printer To
Set printer Off
Set Device To Screen

Enviado: 07 Dez 2005 14:31
por Stanis Luksys
Cara, isso não é dificil nao, basta criar uma matriz com de 4 colunas com os as seguintes informaçôes: nome do campo, tipo do campo, tamanho do campo e, casas decimais do campo (somente para numericos).

Seria algo assim:

matriz := {}

aadd( matriz, {"nome","C",30,0} )
aadd( matriz, {"data","D",8,0} )
aadd( matriz, {"saldo","N",11,2} )

depois para criar o dbf:

dbCreate(matriz)

acho q é só isso mesmo, falou?



Fui...

Enviado: 07 Dez 2005 16:34
por gvc
Stanis Luksys escreveu:Cara, isso não é dificil nao, basta criar uma matriz com de 4 colunas com os as seguintes informaçôes: nome do campo, tipo do campo, tamanho do campo e, casas decimais do campo (somente para numericos).

Seria algo assim:

matriz := {}

aadd( matriz, {"nome","C",30,0} )
aadd( matriz, {"data","D",8,0} )
aadd( matriz, {"saldo","N",11,2} )

depois para criar o dbf:

dbCreate(matriz)

acho q é só isso mesmo, falou?



Fui...
Vc esqueceu de colocar o nome do arquivo a ser criado:

dbcreate(<nome do arquivo>, <array estrutura>, <driver RDD>)

Nesse caso, o arquivo chamado CLI01.DBF ficaria:
dbcreate("cli01", matriz)

Enviado: 07 Dez 2005 16:34
por vagucs
So para lembra...

Especifique o nome do arquivo que será criado.

DbCreate("arquivo.dbf",matriz).