Pasar GDB (Firebird) a DBF

Pasar GDB (Firebird) a DBF

Postby karinha » Wed Jun 08, 2016 2:31 pm

Pasar GDB (Firebird) a DBF.

¿como puedo hacer?

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

Re: Pasar GDB (Firebird) a DBF

Postby vilian » Wed Jun 08, 2016 5:28 pm

Karinha,

Fiz uma migração de uma base de dados alguns meses atrás usando ADO.

Code: Select all  Expand view

#include "fivewin.ch"
#include "AdoDb.ch"

FUNCTION Main()
LOCAL cDirLoc,oError,CNN,oIni,cIpServ:="",cBcoDados,aDados:={},oCursor

   SET DATE BRIT
   cDirLoc := Rtrim(( CurDrive()+":\"+CurDir() ))
   cDirLoc += If(Right(cDirLoc,1)="
\","","\")

   IF .NOT. File(cDirLoc+"
vfatec.ini")
      MsgInfo("
Aqruivo VFATEC.INI não encontrado !","Atenção")
   ELSE
      INI oIni FILE (cDirLoc+"
vfatec.ini")
          GET cIpServ   SECTION "
BancoDados" ENTRY "Ip"         OF oIni
          GET cBcoDados SECTION "
BancoDados" ENTRY "ArquivoFdb" OF oIni
      ENDINI

      IF Empty(cIpServ) .OR. Empty(cBcoDados)
         MsgInfo("
Configuração para acesso ao banco de dados não definida !","Atenção")
      ELSE
         TRY
             CNN:=CreateObject("
ADODB.Connection")
             CNN:Open("
DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;DBNAME="+cIpServ+":"+cBcoDados+";CHARSET=WIN1252;DIALECT=3;CLIENT=GDS32.dll")
             //CNN:Open("
DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;DBNAME=10.10.1.11:C:\tec2000\albano\analista2.fdb;CHARSET=WIN1252;DIALECT=3;CLIENT=GDS32.dll")
         CATCH oError
             Error Connection CNN
             RETURN nil
         END

         TRY
             oCursor:=CreateObject("
ADODB.Recordset")
         CATCH oError
              Error Connection CNN
              RETURN nil
         END

         oCursor:Open("
SELECT b.id_ponto,b.nosso_numero,b.valor_documento,b.processamento,p.nome_ponto FROM boleto_bancario AS b, ponto AS p WHERE b.valor_documento > 0 AND b.id_ponto=p.id_ponto and processamento > '2015-09-01'", CNN, 2, 3)

         oCursor:MoveFirst()
         DO WHILE .NOT. oCursor:Eof()
            Aadd(aDados,{oCursor:Fields["
nosso_numero"]:Value, oCursor:Fields["processamento"]:Value, oCursor:Fields["nome_ponto"]:Value, oCursor:Fields["valor_documento"]:Value})
          oCursor:MoveNext()
         ENDDO
         xBrowse( aDados )
      ENDIF
   ENDIF

RETURN nil
Sds,
Vilian F. Arraes
vilian@vfatec.com.br
Belém-Pa-Brazil
User avatar
vilian
 
Posts: 971
Joined: Wed Nov 09, 2005 2:17 am
Location: Brazil

Re: Pasar GDB (Firebird) a DBF

Postby karinha » Wed Jun 08, 2016 5:51 pm

Obrigado meu querido Vilian, para usar este código, eu preciso ter o FirebIrd instalado? E se tiver senha no banco de dados do Firebird GDB, este código funciona?

Se tiver que instalar o Firebird, onde eu o consigo?

Perguntei aqui também:

http://fivewin.com.br/index.php?/topic/24706-passar-gbdfirebird-para-txtdbf/

Obg. e Forte abraços
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7766
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Pasar GDB (Firebird) a DBF

Postby karinha » Wed Jun 08, 2016 6:11 pm

#include "AdoDb.ch" //-> Vilian, Não tenho este include.

Code: Select all  Expand view


FIREBIR2.prg(28) Error E0030  Syntax error: "syntax error at 'CONNECTION'"

FIREBIR2.prg(35) Error E0030  Syntax error: "syntax error at 'CONNECTION'"
 


Code: Select all  Expand view

   IF .NOT. File(cDirLoc+"vfatec.ini") // Vilian, Pode postar esse?
 


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

Re: Pasar GDB (Firebird) a DBF

Postby vilian » Wed Jun 08, 2016 8:48 pm

Karinha,

No vfatec.ini tem o IP do micro onde esta o banco e o arquivo FDB, Assim:

Code: Select all  Expand view

[BancoDados]
Ip=10.10.1.11
ArquivoFdb=c:\temp\BANCOFB.FDB


Segue o arquivo ADoDb.ch
Code: Select all  Expand view

*
* Adodb.CH - Arquivo de Definição de Constantes do Sistema
*
//Tipo do Cursor
#Define adOpenForwardOnly  0 //adOpenForwardOnly = 0 # permite somente que você avance aos registros posteriores,perdendo-se os anteriores
#Define adOpenKeyset     1 //adOpenKeyset   = 1 # leitura e escrita (não permite ver alterações ou exclusões feitas por outros usuários)
#Define adOpenDynamic    2 //adOpenDynamic  = 2 # leitura e escrita (permite ver alterações ou exclusões feitas por outros usuários)
#Define adOpenStatic     3 //adOpenStatic   = 3 # permite somente leitura

//Tipo de travamento de Registros - LockType
#Define adLockReadOnly    1 //adLockReadOnly    = 1 somente leitura
#Define adLockPessimistic  2 //adLockPessimistic  = 2 Impede que outras sessões alterem o registro que estiver alocado pelo usuário
#Define adLockOptimistic   3 //adLockOptimistic   = 3 Todos podem alterar o mesmo registro
#Define adLockBatchOptimistic 4 //adLockBatchOptimistic = 4 Impede que outras sessões quando estiver em modo update batch

//Localização do Cursor - CursorLocation
#Define adUseServer 2
#Define adUseClient 3

//Estados dos RecordSets
#Define adEditNone   0
#Define adEditInProgress 1
#Define adEditAdd    2
#Define adEditDelete  4

//Tipos de dados retornados pelo DB
#Define RS_Empty       0  //Padrao Dbase C
#Define RS_TinyInt     16  //Padrao Dbase N
#Define RS_SmallInt     2  //Padrao Dbase N
#Define RS_integer      3  //Padrao Dbase N
#Define RS_BigInt      20  //Padrao Dbase N
#Define RS_UnsignedTinyInt 17  //Padrao Dbase N
#Define RS_UnsignedSmallInt 18  //Padrao Dbase N
#Define RS_UnsignedInt   19  //Padrao Dbase N
#Define RS_UnsignedBigInt  21  //Padrao Dbase N
#Define RS_Single      4  //Padrao Dbase N
#Define RS_Double      5  //Padrao Dbase N
#Define RS_currency     6  //Padrao Dbase N
#Define RS_Decimal     14  //Padrao Dbase N
#Define RS_Numeric     131  //Padrao Dbase N
#Define RS_Boolean     11  //Padrao Dbase N
#Define RS_Error      10  //Padrao Dbase C
#Define RS_UserDefined   132  //Padrao Dbase C
#Define RS_Variant     12  //Padrao Dbase C
#Define RS_IDispatch     9  //Padrao Dbase C
#Define RS_IUnknown     13  //Padrao Dbase C
#Define RS_GUID       72  //Padrao Dbase C
#Define RS_Date       7  //Padrao Dbase D
#Define RS_DBDate     133  //Padrao Dbase D
#Define RS_DBTime     134  //Padrao Dbase D
#Define RS_DBTimeStamp   135  //Padrao Dbase D
#Define RS_BSTR       8  //Padrao Dbase C
#Define RS_Char      129  //Padrao Dbase C
#Define RS_VarChar     200  //Padrao Dbase C
#Define RS_LongVarChar   201  //Padrao Dbase C
#Define RS_WChar      130  //Padrao Dbase C
#Define RS_VarWChar    202  //Padrao Dbase C
#Define RS_LongVarWChar  203  //Padrao Dbase C
#Define RS_Binary     128  //Padrao Dbase C
#Define RS_VarBinary    204  //Padrao Dbase C
#Define RS_LongVarBinary  205  //Padrao Dbase C
#Define RS_Chapter     136  //Padrao Dbase C
#Define RS_FileTime     64  //Padrao Dbase C
#Define RS_DBFileTime   137  //Padrao Dbase C
#Define RS_PropVariant   138  //Padrao Dbase C
#Define RS_VarNumeric   139  //Padrao Dbase C

#xcommand DECLARE CONNECTION <w> ;
 =>;
 #xtranslate <w>.\<p:BeginTrans,RollbackTrans,CommitTrans,close,execute\> => <w>:\<p\>;;

#xcommand DECLARE RECORDSET <w> ;
 =>;
 #xtranslate <w>.\<p:MoveNext,MovePrevious,MoveFirst,MoveLast,Find,AddNew,Update,Eof,Bof,close,CancelUpdate,Delete,Requery\> => <w>:\<p\>;;
 #xtranslate <w>->\<c>\.\<p:Value,Name,type\> => <w>:Fields\[\<(c)\>]:\<p\>;;
 #xtranslate <w>.\<c\>.\<p:Value,Name,type\> => YKKRETVALUE <w> \<(c)\> \<p\>

 #xtranslate YKKRETVALUE <a> <b> <c> => <a>:Fields\[\<b>]:<c>

#xTranslate NEW RECORDSET <a> => <a>:=CreateObject("ADODB.Recordset")
#xTranslate NEW CONNECTION <a> => <a>:=CreateObject("ADODB.Connection")
#command CLOSE CONNECTION <a> => <a>:close()
#command CLOSE RECORDSET <a> => <a>:close()
#xtranslate OPEN CONNECTION <b> STRING <(a)> => <b>:Open(<(a)>)
#command OPEN RECORDSET <a> CONNECTION <b> CURSORTYPE <d> LOCKTYPE <e> SQL <f> => <a>:Open(<f>,<b>,<d>,<e>)
#command ERROR CONNECTION <a> => if(<a>:Errors:Count>0,MsgStop("Erro Nativo: "+alltrim(Str(<a>:Errors\[0\]:NativeError))+chr(13)+chr(10)+"Descrição..: "+<a>:Errors\[0\]:Description),Nil)

/********************** Com estas linhas funciona com Harbour
*********************/

#ifdef __HARBOUR__
//ANNOUNCE HB_GTSYS
ANNOUNCE HB_GTSYS
REQUEST HB_GT_GUI_DEFAULT
#xcommand TRY => BEGIN SEQUENCE WITH s_bBreak
#xcommand CATCH [<!oErr!>] => RECOVER [USING <oErr>] <-oErr->
#xcommand FINALLY => ALWAYS
static s_bBreak := { |oErr| break( oErr ) }
#endif
/********************* Com estas linhas funciona com Harbour
*********************/

 
Sds,
Vilian F. Arraes
vilian@vfatec.com.br
Belém-Pa-Brazil
User avatar
vilian
 
Posts: 971
Joined: Wed Nov 09, 2005 2:17 am
Location: Brazil

Re: Pasar GDB (Firebird) a DBF

Postby karinha » Thu Jun 09, 2016 1:57 pm

Obrigado Vilian.

Vilian, com xHarbour me retorna esses erros:

Code: Select all  Expand view

?firebir2.prg(45) Error E0030  Syntax error: "syntax error at 'WITH'"
?firebir2.prg(49) Error E0030  Syntax error: "syntax error at 'USING'"
?firebir2.prg(51) Error E0025  Invalid RETURN from within of SEQUENCE code
?firebir2.prg(54) Error E0030  Syntax error: "syntax error at 'WITH'"
?firebir2.prg(56) Error E0030  Syntax error: "syntax error at 'USING'"
?firebir2.prg(58) Error E0025  Invalid RETURN from within of SEQUENCE code
?firebir2.prg(70) Error E0030  Syntax error: "syntax error at 'ENDIF'"
?firebir2.prg(71) Error E0030  Syntax error: "syntax error at 'ENDIF'"
?firebir2.prg(73) Error E0025  Invalid RETURN from within of SEQUENCE code
 
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7766
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Pasar GDB (Firebird) a DBF

Postby karinha » Thu Jun 09, 2016 2:01 pm

Vilian, com HARBOUR compila, mas me dá essa mensagem:

Image

O que me falta? Obg. abs.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7766
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Pasar GDB (Firebird) a DBF

Postby vilian » Thu Jun 09, 2016 4:55 pm

Karinha,

Não conheço muito de Firebird, aliás sei quase nada sobre ele. No cliente em que fiz a migração, executei esse programa no servidor deles onde o banco de dados rodava, então não precisei de mais nada. Pela mensagem que você enviou acredito que lhe falta uma fonte de dados ODBC para o Firebird.
Sds,
Vilian F. Arraes
vilian@vfatec.com.br
Belém-Pa-Brazil
User avatar
vilian
 
Posts: 971
Joined: Wed Nov 09, 2005 2:17 am
Location: Brazil

Re: Pasar GDB (Firebird) a DBF

Postby quim » Thu Jun 09, 2016 6:52 pm

Karinha

Si no quieres construir un ejecutable, puedes utilizar esta navaja suiza de los traspasos

http://www.vlsoftware.net/exportizer/

Espero que te guste

Obrigado
quim
 
Posts: 39
Joined: Mon Apr 11, 2011 6:22 pm

Re: Pasar GDB (Firebird) a DBF

Postby karinha » Mon Jun 13, 2016 1:42 pm

Gracias, Quim, resuelto. Many thanks.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7766
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 43 guests