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