FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Abrir archivos FDB
Posts: 418
Joined: Wed Nov 26, 2008 06:33 PM
Abrir archivos FDB
Posted: Fri Sep 25, 2015 01:31 AM

Saludos.

Tengo la necesidad de abrir archivos FBD para la exportacion de informacion
Alguna lib que me permita hacerlo?

Gracias.

Noé Aburto Sánchez
Tec. Prog. de Sistemas. -Morelia, Mich. México.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com
Posts: 1067
Joined: Wed Nov 09, 2005 02:17 AM
Re: Abrir archivos FDB
Posted: Fri Sep 25, 2015 01:36 AM

ADORDD permite.

Sds,
Vilian F. Arraes
vilian@vfatec.com.br
Belém-Pa-Brazil
Posts: 418
Joined: Wed Nov 26, 2008 06:33 PM
Re: Abrir archivos FDB
Posted: Sat Sep 26, 2015 12:06 AM

Saludotes.

Ahora ya confirmado que con ADORDD, pero esta es una LIB, PRG o OBJ,

Como lo integro en mi executable?

Noé Aburto Sánchez
Tec. Prog. de Sistemas. -Morelia, Mich. México.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Abrir archivos FDB
Posted: Sat Sep 26, 2015 11:12 PM

Si te refieres a base de datos en Fiberbird,

Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 418
Joined: Wed Nov 26, 2008 06:33 PM
Re: Abrir archivos FDB
Posted: Sun Sep 27, 2015 03:23 AM

Gracias Dario.

Exactamente a esa me refiero: Firebird

Noé Aburto Sánchez
Tec. Prog. de Sistemas. -Morelia, Mich. México.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Abrir archivos FDB
Posted: Sun Sep 27, 2015 02:03 PM
En la contribucciones esta el ejemplo, puedes construir la libreria, mira el ejemplo.

contricuion Harbour harbour-core-master\contrib\hbfbird

te coloco la libreria para Harbour construida para Firebird_2_5
https://www.dropbox.com/s/nhewpzr4q0hua ... D.rar?dl=0
" rel="noopener">
https://www.dropbox.com/s/nhewpzr4q0hua ... D.rar?dl=0


Enlazas los LIb en tu compilacion, y los DLL los colocas donde esta tu ejecutable.
Buena suerte


Code (fw): Select all Collapse
    Local oServer, oQuery, oRow, i, x, aTables, aStruct, aKey

    Local cServer := 'test.gdb'   
    Local cUser := 'sysdba'
    Local cPass := 'masterkey'
    Local nDialect := 1
    Local cQuery
    lOCAL nClrText:=10485760 // Color del texto


    oServer := TFBServer():New(cServer, cUser, cPass, nDialect)
    if oServer:NetErr()
        alert("No Existe Base de Datos")
        ? oServer:Error()
        return
    end
   
   oQuery := oServer:Query('SELECT code, dept, name, sales, salary, creation FROM test')   
   ln := 1
   DO WHILE ! oQuery:Eof()
      if ln>49
        @ ln-46+1,20 say oQuery:FieldGet( 1 )  //con @ 1,1 say "dsdjsk"  da error
        @ ln-46+1,30 say oQuery:FieldGet( 2 )
        @ ln-46+1,35 say oQuery:FieldGet( 3 )
      else
        @ ln+1,1  say oQuery:FieldGet( 1 )  //con @ 1,1 say "dsdjsk"  da error
        @ ln+1,10 say oQuery:FieldGet( 2 )
        @ ln+1,15 say oQuery:FieldGet( 3 )
      endif
        ln++
        oQuery:Skip()

   END    
    
    ? "Closing..."
        
    return
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 1067
Joined: Wed Nov 09, 2005 02:17 AM
Re: Abrir archivos FDB
Posted: Fri Oct 23, 2015 08:23 PM
Amigos,

Estoy probando el código y funcionó bien. A menos que se coloca un campo de tipo DATA en la Query.

Ex: oQuery := oServer:Query("SELECT id_ponto,nosso_numero,data_emissao FROM BOLETO_BANCARIO")

Sempre gera um erro -206. Si me quedo la misma consulta en IBExpert , funciona bien .

¿Alguna idea de cómo resolver esto?
Sds,
Vilian F. Arraes
vilian@vfatec.com.br
Belém-Pa-Brazil
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Abrir archivos FDB
Posted: Fri Oct 23, 2015 10:32 PM

Cual código probaste. ?
Puedes colocar el codigo

Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 1067
Joined: Wed Nov 09, 2005 02:17 AM
Re: Abrir archivos FDB
Posted: Sat Oct 24, 2015 08:05 PM

He probado el código que envió aqui.

Sds,
Vilian F. Arraes
vilian@vfatec.com.br
Belém-Pa-Brazil
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Abrir archivos FDB
Posted: Sat Oct 24, 2015 08:36 PM
Bueno si es el que coloque.

tu dices que cuando colocas data_emissao te da error.

Tendria qeu hacer la prueba, haber si me da lo mismo, Estas usando Fiberdir o Interbase, aunque tengo entendido es igual.

No se si puede mandame el trozo de codigo y la base de datos, es muy grande. para ver como te puedo ayudar.

data_emissao que tipo de columna es, Numerico o caracter,
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 1067
Joined: Wed Nov 09, 2005 02:17 AM
Re: Abrir archivos FDB
Posted: Tue Oct 27, 2015 06:57 PM
Ruben,

Estoy usando Firebird 1.5. La siguiente estructura de la tabla



El código que estoy corriendo es el siguiente :

Code (fw): Select all Collapse
#include "fivewin.ch"

FUNCTION Main()
LOCAL oServer, oQuery, oRow, i, x, aTables, aStruct, aKey,aDados:={}

    LOCAL cServer := "c:\tec2000\Albano\Analista2.fdb"
    LOCAL cUser := "sysdba"
    LOCAL cPass := "masterkey"
    LOCAL nDialect := 1
    LOCAL cQuery
    LOCAL nClrText:=10485760 // Color del texto

    SET DATE BRIT


    oServer := TFBServer():New(cServer, cUser, cPass, nDialect)
    if oServer:NetErr()
        alert("No Existe Base de Datos")
        ? oServer:Error()
        return nil
    end

   oQuery := oServer:Query("SELECT id_ponto,nosso_numero FROM BOLETO_BANCARIO")
   ln := 1
   MsgInfo(IF(oQuery:Eof(),"SIM","NÂO"))
   DO WHILE Ln<=100 .AND. .NOT.  oQuery:Eof()
      AADD(ADADOS,{oQuery:FieldGet( 1 ),oQuery:FieldGet( 2 ),oQuery:FieldGet( 3 )})
      Ln++
      oQuery:Skip()
   END
   xbrowse(adados)
   xbrowse(oQuery)

RETURN nil


Sólo cambia la consulta para incluir un campo de tipo DATE o NUMERO, ya no funciona.

Ex: oQuery := oServer:Query("SELECT id_ponto,nosso_numero,processamento FROM BOLETO_BANCARIO")

No genera un error de ejecución , pero no muestra los datos.
Sds,
Vilian F. Arraes
vilian@vfatec.com.br
Belém-Pa-Brazil
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Abrir archivos FDB
Posted: Tue Oct 27, 2015 09:39 PM
Buen He hecho pruebas con la Version 2.5, y no he tenido problemas. Con la 1.5 no la he trabajado.

Si gustas mandame la Base de datos , hago la prueba.

O puedes Instalar el programa RazorSQL y haces la consulta, haber que pasa.
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 1067
Joined: Wed Nov 09, 2005 02:17 AM
Re: Abrir archivos FDB
Posted: Tue Oct 27, 2015 10:36 PM

Instalei o IBExpert Eu e a Query vai Bem com ele. O problema é apenas com o FWH :(
O Arquivo FDB é muito grande pra exportar.

Acredito que o problema está relacionado com o "Dialect", estamos selecionando 1, mas no IBExpert aparece 3.

Sds,
Vilian F. Arraes
vilian@vfatec.com.br
Belém-Pa-Brazil
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Abrir archivos FDB
Posted: Wed Oct 28, 2015 02:05 PM

No se si la puedes redecir tu base , para podr hacer la prueba.

Has hecho la prueba , Haciendo la conexion con ADO.

Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 1067
Joined: Wed Nov 09, 2005 02:17 AM
Re: Abrir archivos FDB
Posted: Wed Oct 28, 2015 02:27 PM
Resolvi o problema usando ADO/ODBC.
Code (fw): Select all Collapse
#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

Continue the discussion