Page 1 of 1

Problemas na hbFBird.lib

Posted: Fri Apr 01, 2016 3:13 pm
by Joao Cezar
Olá

Estou fazendo alguns testes com Harbour3.2 + Fwh1601 + hbFBird e notei que quando incluo na query campos dos tipos DATE, DECIMAL ou NUMERIC, retorna o erro -206 e não trás dados, agora se tiver apenas campos do tipo CHAR vai normal, alguem tem conseguido, trabalhar com esses tipos de dado sem dar erro ?

Re: Problemas na hbFBird.lib

Posted: Mon Apr 11, 2016 11:13 am
by vilian
Olá João,

Essa hbFBird não está completa. Perdi muito tempo tentando usá-la, mas muita coisa nela simplesmente não funciona. Precisei usar FireBird pra acessar uma base e importar os dados para o meu sistema. Segue o código que usei:

Code: Select all

#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:\seu banco.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