Pasar GDB (Firebird) a DBF
Pasar GDB (Firebird) a DBF
Pasar GDB (Firebird) a DBF.
¿como puedo hacer?
Gracias, saludos.
¿como puedo hacer?
Gracias, saludos.
João Santos - São Paulo - Brasil
Re: Pasar GDB (Firebird) a DBF
Karinha,
Fiz uma migração de uma base de dados alguns meses atrás usando ADO.
Fiz uma migração de uma base de dados alguns meses atrás usando ADO.
Code: Select all
#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
Re: Pasar GDB (Firebird) a DBF
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/ ... ra-txtdbf/
Obg. e Forte abraços
Se tiver que instalar o Firebird, onde eu o consigo?
Perguntei aqui também:
http://fivewin.com.br/index.php?/topic/ ... ra-txtdbf/
Obg. e Forte abraços
João Santos - São Paulo - Brasil
Re: Pasar GDB (Firebird) a DBF
#include "AdoDb.ch" //-> Vilian, Não tenho este include.
Obg. Abs.
Code: Select all
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
IF .NOT. File(cDirLoc+"vfatec.ini") // Vilian, Pode postar esse?
João Santos - São Paulo - Brasil
Re: Pasar GDB (Firebird) a DBF
Karinha,
No vfatec.ini tem o IP do micro onde esta o banco e o arquivo FDB, Assim:
Segue o arquivo ADoDb.ch
No vfatec.ini tem o IP do micro onde esta o banco e o arquivo FDB, Assim:
Code: Select all
[BancoDados]
Ip=10.10.1.11
ArquivoFdb=c:\temp\BANCOFB.FDB
Code: Select all
*
* 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
*********************/
Re: Pasar GDB (Firebird) a DBF
Obrigado Vilian.
Vilian, com xHarbour me retorna esses erros:
Vilian, com xHarbour me retorna esses erros:
Code: Select all
?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
Re: Pasar GDB (Firebird) a DBF
Vilian, com HARBOUR compila, mas me dá essa mensagem:
O que me falta? Obg. abs.
O que me falta? Obg. abs.
João Santos - São Paulo - Brasil
Re: Pasar GDB (Firebird) a DBF
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.
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.
Re: Pasar GDB (Firebird) a DBF
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
Si no quieres construir un ejecutable, puedes utilizar esta navaja suiza de los traspasos
http://www.vlsoftware.net/exportizer/
Espero que te guste
Obrigado
Re: Pasar GDB (Firebird) a DBF
Gracias, Quim, resuelto. Many thanks.
João Santos - São Paulo - Brasil