PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 24 → Windev e Webdev - Acessando base de Dados DBF
Windev e Webdev - Acessando base de Dados DBF
Débuté par adrianoboller, 20 juin 2015 19:15 - 8 réponses
Membre enregistré
2 969 messages
Popularité : +89 (91 votes)
Posté le 20 juin 2015 - 19:15
Procedure DB_Inicializar_DBF()

ok is boolean = False

ok = HDescribeConnection("CntxBase", "", "", fExeDir(), "", hNativeAccessXBase, hOReadWrite, "OEMTOANSI=WINDOWS;")

ok = HChangeConnection("*", "CntxBase")

ok = HDBOpen("Dados", "DA", fExeDir()+"\DADOS.DBF")

IF ok = True THEN

Info(1)

END

ok = HDBOpen("Dados", "DA", fExeDir()+"\MOVIM01.DBF")

IF ok = True THEN

Info(1)

END
Membre enregistré
2 969 messages
Popularité : +89 (91 votes)
Posté le 20 juin 2015 - 19:15
DB_Inicializar_DBF()

FOR EACH Dados

Info(Dados.CODHIST,Dados.CODIGO,Dados.DATALAN,Dados.DESCRICAO,Dados.HISTORIC,Dados.NCONTA,Dados.OBS,Dados.QUANT,Dados.TIPO,Dados.VALOR)

END
Membre enregistré
2 969 messages
Popularité : +89 (91 votes)
Posté le 20 juin 2015 - 19:20
Import as tabelas e defina elas no Analisys como Xbase e altere o subtipo para Clipper 87, conforme imagem abaixo:



Membre enregistré
2 969 messages
Popularité : +89 (91 votes)
Posté le 20 juin 2015 - 19:32
Apesar de ser um arquivo DBF voce pode criar AS Querys de SELECT, INSERT, UPDATE, DELETE desde que tenha importado AS tabelas DBF no analsys e usar em seu sistema como se fosse uma base SQL:

SELECT
Dados.CODIGO AS CODIGO,
Dados.TIPO AS TIPO,
Dados.DATALAN AS DATALAN,
Dados.NCONTA AS NCONTA,
Dados.QUANT AS QUANT,
Dados.DESCRICAO AS DESCRICAO,
Dados.CODHIST AS CODHIST,
Dados.HISTORIC AS HISTORIC,
Dados.VALOR AS VALOR,
Dados.OBS AS OBS
FROM
Dados
Membre enregistré
2 969 messages
Popularité : +89 (91 votes)
Posté le 20 juin 2015 - 19:33


Membre enregistré
2 969 messages
Popularité : +89 (91 votes)
Posté le 20 juin 2015 - 20:01
DB_Inicializar_DBF()

ok is boolean = HExecuteQuery(QRY_DeleteAll_MOVI_DBF,hQueryDefault)

IF ok = True THEN

ToastDisplay("Tabela de Movimento DBF Inicializada com Sucesso!",toastShort,vaMiddle,haCenter)

ELSE

Info("Erro: "+ErrorInfo())

END
Membre enregistré
2 969 messages
Popularité : +89 (91 votes)
Posté le 20 juin 2015 - 20:42
Procedure DB_Inicializar_DBF()

ok is boolean = False

gsPathDbf = INIRead("Path","MOVIM01DBF","",fExeDir+"\Config.ini")

IF gsPathDbf <> ""


ok = HDescribeConnection("CntxBase", "", "", gsPathDbf , "", hNativeAccessXBase, hOReadWrite, "OEMTOANSI=WINDOWS;")

ok = HOpenConnection("CntxBase")

ok = HChangeConnection("*", "CntxBase")

ok = HDBOpen("MOVIM01", "MO", gsPathDbf)

IF ok = True THEN

//info("OK")

ELSE

Info(ErrorInfo())

END

ELSE
Info("É necessário informar o local onde está o arquivo MOVIM01.DBF")
END
Membre enregistré
2 969 messages
Popularité : +89 (91 votes)
Posté le 20 juin 2015 - 22:08
//Versao Final - Conexao com o DBF

Procedure DB_Inicializar_DBF()

ok is boolean = False

gsPathDbf = INIRead("Path","MOVIM01DBF","",fExeDir+"\Config.ini")

IF gsPathDbf <> ""

ok = HDescribeConnection("CntxBase", "", "", gsPathDbf , "", hNativeAccessXBase, hOReadWrite, "OEMTOANSI=WINDOWS;")

ok = HChangeConnection("*", "CntxBase")

ok = HDBOpen("MOVIM01", "MO", gsPathDbf) //Arquivo MOVIM01.DBF

IF ok = True THEN

ToastDisplay("Arquivo Movim01.DBF acessado com sucesso!",toastShort,vaMiddle,haCenter)

ELSE

Info(ErrorInfo())

END

ELSE
Info("É necessário informar o local onde está o arquivo MOVIM01.DBF")
END
Membre enregistré
2 969 messages
Popularité : +89 (91 votes)
Posté le 20 juin 2015 - 23:08
//Remove acentos e codigos chineses e japoneses
Texto = NoAccent(Texto)
ChangeCharset(charsetOccidental)// SEM ACENTO
IF PositionOccurrence(Texto, "charset=UTF-8",firstRank,FromBeginning) > 0 THEN
Texto = UTF8ToString(Texto,charsetAnsi)
ELSE
BufferTexto is Buffer = Texto
IF StringCount(BufferTexto, “ISO-8859-1, IgnoreCase) = 0 THEN
Texto = UTF8ToString(BufferTexto)
ELSE
Texto = AnsiToUnicode(BufferTexto)
END
END