Jump to content
Fivewin Brasil

Converter SGBD do Firebird para DBF e/ou TXT


Kleyton

Recommended Posts

Estou precisando converter um arquivo do firebird, alguém poderia me enviar o programa para converter, preciso converter

o arquivo do firebird, e não estou conseguindo, até consegui abrir o arquivo com o IBExpert e ver as tabelas, mas ai converter as tabelas

para DBF ou TXT, não estou conseguindo.

Extensão do arquivo do FIREBIRD é FDB

Se alguém puder me dar uma ajuda, ficarei enternamente grato.

Kleyton

xHarbour 99.5 Clipper5.2E+Clipper5.3b+Blink7+FW2.0d+Fwh 2.5 (xHarbour 0.99.3)

cleitonbala@bol.com.br

Link to comment
Share on other sites

Estou precisando converter um arquivo do firebird, alguém poderia me enviar o programa para converter, preciso converter

o arquivo do firebird, e não estou conseguindo, até consegui abrir o arquivo com o IBExpert e ver as tabelas, mas ai converter as tabelas

para DBF ou TXT, não estou conseguindo.

Extensão do arquivo do FIREBIRD é FDB

Se alguém puder me dar uma ajuda, ficarei enternamente grato.

Kleyton

xHarbour 99.5 Clipper5.2E+Clipper5.3b+Blink7+FW2.0d+Fwh 2.5 (xHarbour 0.99.3)

cleitonbala@bol.com.br

Link to comment
Share on other sites

citação:

Estou precisando converter um arquivo do firebird, alguém poderia me enviar o programa para converter, preciso converter

o arquivo do firebird, e não estou conseguindo, até consegui abrir o arquivo com o IBExpert e ver as tabelas, mas ai converter as tabelas

para DBF ou TXT, não estou conseguindo.

Extensão do arquivo do FIREBIRD é FDB

Se alguém puder me dar uma ajuda, ficarei enternamente grato.

Kleyton

xHarbour 99.5 Clipper5.2E+Clipper5.3b+Blink7+FW2.0d+Fwh 2.5 (xHarbour 0.99.3)

cleitonbala@bol.com.br


id=quote>id=quote>

http://www.sqlmanager.net/en/products/ibfb/manager/download

Use o EMS Sql manager que vc consegue exportar as Tabelas

para DBF.

Mas peque a vesão Full pq a Free não exporta.

Outro caminho seria o que eu utilizo.

Tenho um programa a parte só para acessar Bancos e converter para o meu sistema, só tem que adaptar a cada banco.

Marcelo Michels

Msn/E-mail:marcelo@infototal.com.br

Msn/E-mail:celo.michels@hotmail.com

xHarbour 1.1 + Fwh 8.01 + WorkShop + Bcc 5.82 + WvwTools + SQLRDD + xMate.

Link to comment
Share on other sites

Pode fazer também acessando o firebird atraves do ODBC, segue abaixo um exemplo.

// ODBC 32 bits access from FiveWin

#include "FiveWin.ch"

#include "Sql.ch"

static oInformacio

//----------------------------------------------------------------------------//

function Main()

Private oWindow

set date to british

set century on

DEFINE WINDOW oWindow TITLE "Convesor de Dados - Henning Informática"

SET MESSAGE OF oWindow TO "Aguarde convertendo dados........"

DEFINE MSGITEM oInformacion OF oWindow:oMsgBar SIZE 50

ACTIVATE WINDOW oWindow ON INIT odbc()

RETURN nil

function odbc()

local cSql

local nStep

local odbc := todbc():New('teste')

Local ncount, nregistros, tdbodbc

// ? odbc:cConnect

tdbodbc := tdbodbc():new("fornecedor",odbc)

nRegistros := tdbodbc:reccount()

nCount:= 1

use FOR00 alias for

FOR->(DBZap())

do While nCount <= nRegistros

cCodFor := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_CODIGO"))

cFanta := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_FANTA"))

cRazao := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_RAZAO"))

cEnder := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_ENDER"))

cNumero := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_NUMERO"))

cTipo := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_TIPO"))

cCep := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_CEP"))

cCidade := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_CIDADE"))

cUF := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_UF"))

cCNPJ := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_CNPJ"))

cInsc := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_INSC"))

cFone1 := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_FONE1"))

cFone2 := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_FONE2"))

cContato:= tdbodbc:fieldget(tdbodbc:fieldpos("FOR_CONTATO"))

cFAX := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_FAX"))

cConta := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_CONTA"))

cBanco := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_BANCO"))

cAgencia:= tdbodbc:fieldget(tdbodbc:fieldpos("FOR_AGENCIA"))

cEmail := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_EMAIL"))

cHomeP := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_HOMEP"))

cCelular:= tdbodbc:fieldget(tdbodbc:fieldpos("FOR_CELULAR"))

cBairro := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_BAIRRO"))

cComple := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_COMPLEMENTO"))

cOBS := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_OBS"))

dDCad := Retorna_Data(tdbodbc:fieldget(tdbodbc:fieldpos("FOR_DCAD")))

cCodGRU := tdbodbc:fieldget(tdbodbc:fieldpos("FOR_GRUPO"))

FOR->(DBAppend())

FOR->(_Field->FOR_Codigo := cCodFor )

FOR->(_Field->FOR_Fanta := cFanta )

FOR->(_Field->FOR_Razao := cRazao )

FOR->(_Field->FOR_Ender := cEnder )

FOR->(_Field->FOR_Numero := cNumero )

FOR->(_Field->FOR_Cep := cCEP )

FOR->(_Field->FOR_Cid := SubStr(cCidade,1,25))

FOR->(_Field->FOR_UF := cUF )

FOR->(_Field->FOR_CNPJ := cCNPJ )

FOR->(_Field->FOR_Insc := cInsc )

FOR->(_Field->FOR_Fone1 := cFone1 )

FOR->(_Field->FOR_Fone2 := cFone2 )

FOR->(_Field->FOR_Contat := cContato )

FOR->(_Field->FOR_FAX := cFAX )

FOR->(_Field->FOR_Conta := cConta )

FOR->(_Field->FOR_Banco := cBanco )

FOR->(_Field->FOR_Agenci := cAgencia)

FOR->(_Field->FOR_Email := SubStr(cEmail,1,50))

FOR->(_Field->FOR_HomeP := SubStr(cHomeP,1,50))

FOR->(_Field->FOR_Celula := cCelular )

FOR->(_Field->FOR_Bairro := SubStr(cBairro,1,25))

FOR->(_Field->FOR_Comple := cComple )

FOR->(_Field->FOR_OBs := SubStr(cOBS,1,180))

FOR->(_Field->FOR_DCad := dDCad )

FOR->(_Field->FOR_CodGRU := cCodGRU )

tdbodbc:Skip()

nCount:= nCount + 1

EndDo

FOR->(DBCommit())

FOR->(DBCloseArea())

tdbodbc:end()

tdbodbc := tdbodbc():new("GRUPOS",odbc)

nRegistros := tdbodbc:reccount()

nCount:= 1

use GRP00 alias grp

GRP->(DBZap())

do While nCount <= nRegistros

cCodGru := tdbodbc:fieldget(tdbodbc:fieldpos("GRU_CODIGO"))

cDesc := tdbodbc:fieldget(tdbodbc:fieldpos("GRU_DESCRICAO"))

GRP->(DBAppend())

GRP->(_Field->GRP_Codigo := cCodGRU )

GRP->(_Field->GRP_Desc := cDesc )

tdbodbc:Skip()

nCount:= nCount + 1

EndDo

GRP->(DBCommit())

GRP->(DBCloseArea())

tdbodbc:end()

tdbodbc := tdbodbc():new("GRU_FORNEC",odbc)

nRegistros := tdbodbc:reccount()

nCount:= 1

use GRF00 alias grf

GRF->(DBZap())

do While nCount <= nRegistros

cCodGru := tdbodbc:fieldget(tdbodbc:fieldpos("GRU_CODIGO"))

cDesc := tdbodbc:fieldget(tdbodbc:fieldpos("GRU_DESC"))

GRF->(DBAppend())

GRF->(_Field->GRF_Codigo := cCodGRU )

GRF->(_Field->GRF_Desc := cDesc )

tdbodbc:Skip()

nCount:= nCount + 1

EndDo

GRF->(DBCommit())

GRF->(DBCloseArea())

tdbodbc:end()

tdbodbc := tdbodbc():new("MOV_CONSU",odbc)

nRegistros := tdbodbc:reccount()

nCount:= 1

use MNC00 alias mnc

MNC->(DBZap())

do While nCount <= nRegistros

cCodPro := tdbodbc:fieldget(tdbodbc:fieldpos("MOV_CODPRO"))

cCodREQ := tdbodbc:fieldget(tdbodbc:fieldpos("MOV_TIPO"))

cOper := tdbodbc:fieldget(tdbodbc:fieldpos("MOV_OPER"))

dData := Retorna_Data(tdbodbc:fieldget(tdbodbc:fieldpos("MOV_DATA")))

dDataD := Retorna_Data(tdbodbc:fieldget(tdbodbc:fieldpos("MOV_DATAD")))

dDataE := Retorna_Data(tdbodbc:fieldget(tdbodbc:fieldpos("MOV_DATAE")))

nQuant := tdbodbc:fieldget(tdbodbc:fieldpos("MOV_QUANT"))

cDoc := tdbodbc:fieldget(tdbodbc:fieldpos("MOV_DOC"))

cDev := tdbodbc:fieldget(tdbodbc:fieldpos("MOV_DEVOLVIDO"))

nCodInt := tdbodbc:fieldget(tdbodbc:fieldpos("MOV_CODINT"))

MNC->(DBAppend())

MNC->(_Field->MNC_CodPro := PadL(AllTrim(cCodPro),10))

MNC->(_Field->MNC_CodReq := cCodReq )

MNC->(_Field->MNC_CodDep := '000001' )

MNC->(_Field->MNC_Data := dData )

MNC->(_Field->MNC_DataD := dDataD )

MNC->(_Field->MNC_Quant := nQuant )

If AllTrim(cDev) == 'S'

MNC->(_Field->MNC_QuantD := nQuant )

MNC->(_Field->MNC_Dev := 'S' )

Else

MNC->(_Field->MNC_Dev := 'N' )

Endif

MNC->(_Field->MNC_CodInt := nCodInt )

MNC->(_Field->MNC_Doc := cDoc )

tdbodbc:Skip()

nCount:= nCount + 1

EndDo

MNC->(DBCommit())

MNC->(DBCloseArea())

tdbodbc:end()

tdbodbc := tdbodbc():new("MOV_ESTQ",odbc)

nRegistros := tdbodbc:reccount()

nCount:= 1

use MMC00 alias MMC

MMC->(DBZap())

do While nCount <= nRegistros

cCodPro := tdbodbc:fieldget(tdbodbc:fieldpos("MOV_CODPRO"))

cCodREQ := tdbodbc:fieldget(tdbodbc:fieldpos("MOV_TIPO"))

cOper := tdbodbc:fieldget(tdbodbc:fieldpos("MOV_OPER"))

dData := Retorna_Data(tdbodbc:fieldget(tdbodbc:fieldpos("MOV_DATA")))

nValor := tdbodbc:fieldget(tdbodbc:fieldpos("MOV_VALOR"))

nQuant := tdbodbc:fieldget(tdbodbc:fieldpos("MOV_QUANT"))

cDoc := tdbodbc:fieldget(tdbodbc:fieldpos("MOV_DOC"))

nCodInt := tdbodbc:fieldget(tdbodbc:fieldpos("MOV_CODINT"))

cCodFor := tdbodbc:fieldget(tdbodbc:fieldpos("MOV_CODFOR"))

MMC->(DBAppend())

MMC->(_Field->MMC_CodPRO := PadL(AllTrim(cCodPRO),10))

MMC->(_Field->MMC_CodREQ := cCodReq )

MMC->(_Field->MMC_CodDEP := '000001')

MMC->(_Field->MMC_CodInt := nCodInt )

MMC->(_Field->MMC_Doc := cDoc )

MMC->(_Field->MMC_Oper := cOper )

MMC->(_Field->MMC_Quant := nQuant )

MMC->(_Field->MMC_Data := dData )

MMC->(_Field->MMC_Valor := nValor )

MMC->(_Field->MMC_CodFor := cCodFor )

tdbodbc:Skip()

nCount:= nCount + 1

EndDo

MMC->(DBCommit())

MMC->(DBCloseArea())

tdbodbc:end()

tdbodbc := tdbodbc():new("PRODUTOS",odbc)

nRegistros := tdbodbc:reccount()

nCount:= 1

use PRO00 alias PRO

PRO->(DBZap())

do While nCount <= nRegistros

cCodigo := tdbodbc:fieldget(tdbodbc:fieldpos("PRO_CODIGO"))

cDesc := tdbodbc:fieldget(tdbodbc:fieldpos("PRO_DESCRICAO"))

cUnid := tdbodbc:fieldget(tdbodbc:fieldpos("PRO_UNID"))

cCodGRU := tdbodbc:fieldget(tdbodbc:fieldpos("PRO_CODGRU"))

cLocal := tdbodbc:fieldget(tdbodbc:fieldpos("PRO_LOCAL"))

nQuant := tdbodbc:fieldget(tdbodbc:fieldpos("PRO_QUANT"))

nMin := tdbodbc:fieldget(tdbodbc:fieldpos("PRO_MIN"))

nValor := tdbodbc:fieldget(tdbodbc:fieldpos("PRO_VALOR"))

cOBS := tdbodbc:fieldget(tdbodbc:fieldpos("PRO_OBS"))

cRefer := tdbodbc:fieldget(tdbodbc:fieldpos("PRO_REFER"))

cCodBar := tdbodbc:fieldget(tdbodbc:fieldpos("PRO_CODBAR"))

nEMAX := tdbodbc:fieldget(tdbodbc:fieldpos("PRO_EMAX"))

cConsu := tdbodbc:fieldget(tdbodbc:fieldpos("PRO_CONSUMIVEL"))

cCodFOR := tdbodbc:fieldget(tdbodbc:fieldpos("PRO_CODFOR"))

PRO->(DBAppend())

PRO->(_Field->PRO_Codigo := PadL(AllTrim(cCodigo),10))

PRO->(_Field->PRO_Desc := cDesc )

PRO->(_Field->PRO_Unid := cUnid )

PRO->(_Field->PRO_CodGru := cCodGRU )

PRO->(_Field->PRO_Local := cLocal )

PRO->(_Field->PRO_Quant := nQuant )

PRO->(_Field->PRO_EMin := nMin )

PRO->(_Field->PRO_Valor := nValor )

PRO->(_Field->PRO_OBS := cOBS )

PRO->(_Field->PRO_Refer := cRefer )

PRO->(_Field->PRO_CodBar := cCodBar )

PRO->(_Field->PRO_EMAX := nEMax )

PRO->(_Field->PRO_AI := 'A' )

PRO->(_Field->PRO_Consu := cConsu )

PRO->(_Field->PRO_CodFOR := cCodFOR )

tdbodbc:Skip()

nCount:= nCount + 1

EndDo

PRO->(DBCommit())

PRO->(DBCloseArea())

tdbodbc:end()

tdbodbc := tdbodbc():new("REQUISITANTE",odbc)

nRegistros := tdbodbc:reccount()

nCount:= 1

use REQ00 alias REQ

REQ->(DBZap())

do While nCount <= nRegistros

cCodigo := tdbodbc:fieldget(tdbodbc:fieldpos("REQ_CODIGO"))

cNome := tdbodbc:fieldget(tdbodbc:fieldpos("REQ_DESCRICAO"))

REQ->(DBAppend())

REQ->(_Field->REQ_Codigo := cCodigo)

REQ->(_Field->REQ_Nome := cNome )

REQ->(_Field->REQ_CodDEP := '000001')

tdbodbc:Skip()

nCount:= nCount + 1

EndDo

REQ->(DBCommit())

// REQ->(browse())

REQ->(DBCloseArea())

Use DEP00 alias DEP

DEP->(DBZap())

DEP->(DBAppend())

DEP->(_Field->DEP_Codigo := '000001' )

DEP->(_Field->DEP_Desc := 'Departamento/Setor')

DEP->(DBCommit())

DEP->(DBCloseArea())

DBCLoseAll()

tdbodbc:end()

odbc:end()

RUN DEL *.CDX

oWindow:End()

return nil

//----------------------------------------------------------------------------//

Function Retorna_Data(cData)

Return CTod(SubStr(cData,9,2)+'/'+SubStr(cData,6,2)+'/'+SubStr(cData,1,4))

FWH 2.7, xHarbour 0.99.61, hbMake, ContexT, PellesC 4.00.50, DBF/CDX

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...