FBD no HMG
Moderador: Moderadores
FBD no HMG
Até rimou, bom dia à todos, pesquisei no Forum e achei vários links sobre o assunto para Harbour mais nenhum funcionou no HMG 3.1.1, tenho um banco já pronto em Firebird *.FDB que roda perfeitamente no IBEXPERT (Gerenciador de Banco de Dados Firebird) e preciso rodar o mesmo no HMG, onde cheguei mais perto foi neste link com a dica do luiz antonio da silva https://pctoledo.org/forum/viewto ... fdb#p81879, só que ainda não rodou....
-
luiz antonio da silva
- Usuário Nível 3

- Mensagens: 161
- Registrado em: 21 Nov 2006 22:12
- Localização: serrana-sp
FBD no HMG
Olá,
Ajuda se postar um exemplo com conexão, leitura, gravação e update ? (coisa simples)
luiz
Ajuda se postar um exemplo com conexão, leitura, gravação e update ? (coisa simples)
luiz
HMG 3.4.4 - SQL SERVER - ORACLE
-
luiz antonio da silva
- Usuário Nível 3

- Mensagens: 161
- Registrado em: 21 Nov 2006 22:12
- Localização: serrana-sp
FBD no HMG
Blz.
hj quando chegar em casa vou montar um exemplo funcional e postar aqui.
Luiz
hj quando chegar em casa vou montar um exemplo funcional e postar aqui.
Luiz
HMG 3.4.4 - SQL SERVER - ORACLE
-
luiz antonio da silva
- Usuário Nível 3

- Mensagens: 161
- Registrado em: 21 Nov 2006 22:12
- Localização: serrana-sp
FBD no HMG
Olá !
Os arquivos envolvidos são os seguintes.
BANCO.INI
IP= Endereço ip onde o FDB se encontra
CM = Caminho onde se encontra o FDB
BD = Nome do arquivo FDB
ADODB.CH
ACFDB.PRG
CADASTRO.FDB
ID NUMBER 9
DATA CHAR 10
HORA CHAR 8
HISTORICO VARCHAR 50
Supondo que tenha instalado o firebird ODBC e usuário e senha são padrões (SYSDBA / masterkey), vai funcionar.
* O arquivo BANCO.INI, ADODB.CH e FBCLIENT.DLL (encontrado na pasta do firebird)
deverão estar na pasta do aplicativo
* Desculpe a falta de atenção com aparencia do teste, tá meio corrido hj...rs
qq dúvida estamos por aqui...rs
Luiz.
Os arquivos envolvidos são os seguintes.
BANCO.INI
Código: Selecionar todos
[FIREBIRD]
IP=127.0.0.1
CM=C:\FDB
BD=ARQUIVO.FDB
FB=1
CM = Caminho onde se encontra o FDB
BD = Nome do arquivo FDB
ADODB.CH
Código: Selecionar todos
*
* 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
*********************/
Código: Selecionar todos
#include "hmg.ch"
#INCLUDE "ADODB.CH"
#DEFINE HBA HB_OEMTOANSI
Procedure main()
PUBLIC R_FB:=R_IP:=R_CM:=R_BD:="",altera:=0
PUBLIC _PASTA:=GETSTARTUPFOLDER()
PUBLIC ARQCFG:=_PASTA+"\BANCO.INI"
SET DELETED ON
SET DATE BRIT
SET CENTURY ON
SET EPOCH TO 1960
SET MULTIPLE OFF
SET AUTOPEN OFF
Set ToolTipBalloon On
if file(ARQCFG)
BEGIN INI FILE (ARQCFG)
GET R_IP SECTION 'FIREBIRD' ENTRY 'IP'
GET R_CM SECTION 'FIREBIRD' ENTRY 'CM'
GET R_BD SECTION 'FIREBIRD' ENTRY 'BD'
GET R_FB SECTION 'FIREBIRD' ENTRY 'FB'
END INI
else
MSGINFO("BANCO.INI NAO ENCONTRADO")
endif
opc:=.t.
if VAL(R_FB)<>0
RIP:=R_IP
RCM:=R_CM
RBD:=R_BD
if LEN(RIP)=0 .OR. ALLTRIM(RIP)="127.0.0.1"
_ARQUIVO:=":"+RCM+"\"+RBD
else
_ARQUIVO:="\\"+ALLTRIM(RIP)+"\"+ALLTRIM(RCM)+"\"+ALLTRIM(RBD)
endif
while .T.
OKX:="S"
Try
FDB:=CreateObject("ADODB.Connection")
FDB:Open("DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;DBNAME="+ _ARQUIVO +";CHARSET=WIN1252;DIALECT=3;CLIENT=fbclient.dll")
Catch e
CLOSE(FDB)
OKX:="N"
End
if OKX="S"
EXIT
else
OPC:=MSGYESNO(HBA("ERRO NA CONEXÇO COM FIREBIRD")+CRLF+"TENTAR NOVAMENTE ?","ERRO")
IF OPC=.F.
EXIT
endif
endif
enddo
endif
if opc=.f.; quit; endif
DEFINE WINDOW CAD AT 272 , 335 WIDTH 593 HEIGHT 372 TITLE "FIREBIRD" ON INIT INICIO() MAIN
DEFINE LABEL Label_1
ROW 10
COL 10
WIDTH 60
HEIGHT 22
VALUE "CODIGO"
END LABEL
DEFINE LABEL Label_2
ROW 50
COL 10
WIDTH 60
HEIGHT 24
VALUE "DATA"
END LABEL
DEFINE LABEL Label_3
ROW 90
COL 10
WIDTH 60
HEIGHT 24
VALUE "HORA"
END LABEL
DEFINE LABEL Label_4
ROW 130
COL 10
WIDTH 60
HEIGHT 24
VALUE "DADOS"
END LABEL
DEFINE TEXTBOX Text_1
ROW 10
COL 80
WIDTH 120
HEIGHT 24
FONTNAME 'Arial'
END TEXTBOX
DEFINE TEXTBOX Text_2
ROW 50
COL 80
WIDTH 120
HEIGHT 24
VALUE ''
ONENTER CAD.TEXT_3.SETFOCUS
END TEXTBOX
DEFINE TEXTBOX Text_3
ROW 90
COL 80
WIDTH 120
HEIGHT 24
FONTNAME 'Arial'
VALUE ''
ONENTER CAD.TEXT_4.SETFOCUS
END TEXTBOX
DEFINE TEXTBOX Text_4
ROW 130
COL 80
WIDTH 120
HEIGHT 24
VALUE ''
ONENTER CAD.BUTTON_1.SETFOCUS
END TEXTBOX
DEFINE GRID Grid_1
ROW 10
COL 210
WIDTH 370
HEIGHT 315
ITEMS {}
WIDTHS {40,80,80,170}
HEADERS {'ID','DT','HR','DD'}
onchange mostra_dados()
on dblclick alterar()
TOOLTIP "Duplo clique ou enter p/ alterar"
END GRID
DEFINE BUTTON Button_1
ROW 170
COL 10
WIDTH 192
HEIGHT 34
CAPTION "&GRAVAR"
ACTION GRAVAR()
END BUTTON
DEFINE BUTTON Button_2
ROW 210
COL 10
WIDTH 192
HEIGHT 34
CAPTION "&EXCLUIR"
ACTION EXCLUIR()
END BUTTON
DEFINE BUTTON Button_3
ROW 290
COL 10
WIDTH 192
HEIGHT 34
CAPTION "&SAIR"
ACTION CAD.RELEASE
END BUTTON
END WINDOW
ACTIVATE WINDOW CAD
close(FDB)
RETU
FUNC INICIO()
delete item ALL from grid_1 of cad
cad.grid_1.enabled:=.f.
cad.text_1.enabled:=.f.
cad.text_2.enabled:=.f.
cad.text_3.enabled:=.f.
cad.text_4.enabled:=.f.
cad.button_1.enabled:=.t.
cad.button_2.enabled:=.f.
csql:="select * from cadastro order by id"
Try
ret:=FDB:Execute(csql)
Catch e
Error Connection FDB
Return
End
if !ret:eof()
while !ret:eof()
_id:=alltrim(str(int(ret:fields["id"]:VALUE)))
_dt:=ret:fields["data"]:VALUE
_hr:=ret:fields["hora"]:VALUE
_dd:=ret:fields["historico"]:VALUE
add item { _id, _dt, _hr, _dd } to grid_1 of cad
ret:movenext()
enddo
if cad.grid_1.itemcount<>0
cad.button_2.enabled:=.t.
endif
cad.grid_1.enabled:=.t.
cad.grid_1.value:=1
cad.grid_1.refresh
cad.grid_1.setfocus
endif
RETU
FUNC GRAVAR()
if altera=0
csql:="select max(id) ureg from cadastro"
Try
ret:=FDB:Execute(csql)
Catch e
Error Connection FDB
Return
End
if ret:fields["UREG"]:VALUE<>NIL
nreg:=ret:fields["UREG"]:VALUE+1
else
nreg:=1
endif
csql:="insert into cadastro values("
csql+=str(int(nreg))+","
csql+="'"+dtoc(date())+"',"
csql+="'"+time()+"',"
csql+="'Registro automatico')"
Try
FDB:Execute(csql)
Catch e
Error Connection FDB
Return
End
cad.button_2.enabled:=.t.
else
csql:="update cadastro set "
csql+="data='" +alltrim(cad.text_2.value)+"',"
csql+="hora='" +alltrim(cad.text_3.value)+"',"
csql+="historico='" +alltrim(cad.text_4.value)+"'"
csql+=" where id="+alltrim(cad.text_1.value)
Try
FDB:Execute(csql)
Catch e
Error Connection FDB
Return
End
cad.text_2.enabled:=.f.
cad.text_3.enabled:=.f.
cad.text_4.enabled:=.f.
endif
ALTERA:=0
inicio()
RETU
FUNC ALTERAR()
altera:=1
cad.text_2.enabled:=.t.
cad.text_3.enabled:=.t.
cad.text_4.enabled:=.t.
cad.text_2.setfocus
RETU
FUNC EXCLUIR()
opc:=msgyesno("excluir o registro !","cuidado")
if opc=.t.
csql:="delete from cadastro where id="+alltrim(cad.text_1.value)
Try
FDB:Execute(csql)
Catch e
Error Connection FDB
Return
End
endif
inicio()
RETU
func mostra_dados()
cad.text_1.value:=cad.grid_1.cell(cad.grid_1.value,1)
cad.text_2.value:=cad.grid_1.cell(cad.grid_1.value,2)
cad.text_3.value:=cad.grid_1.cell(cad.grid_1.value,3)
cad.text_4.value:=cad.grid_1.cell(cad.grid_1.value,4)
retu
ID NUMBER 9
DATA CHAR 10
HORA CHAR 8
HISTORICO VARCHAR 50
Supondo que tenha instalado o firebird ODBC e usuário e senha são padrões (SYSDBA / masterkey), vai funcionar.
* O arquivo BANCO.INI, ADODB.CH e FBCLIENT.DLL (encontrado na pasta do firebird)
deverão estar na pasta do aplicativo
* Desculpe a falta de atenção com aparencia do teste, tá meio corrido hj...rs
qq dúvida estamos por aqui...rs
Luiz.
HMG 3.4.4 - SQL SERVER - ORACLE
FBD no HMG
Luiz, na compilação dá o seguinte erro:
o que pode ser 
Código: Selecionar todos
Harbour 3.2.0dev (Rev. 18706)
Copyright (c) 1999-2012, http://harbour-project.org/
D:\FDB\ADODB.CH(95) Error E0011 Empty optional clause in #translate/#command
D:\FDB\main.prg(16) Error E0030 Syntax error "syntax error at 'TOOLTIPBALLOON'"
D:\FDB\main.prg(45) Error E0030 Syntax error "syntax error at 'E'"
D:\FDB\main.prg(191) Error E0030 Syntax error "syntax error at 'E'"
D:\FDB\main.prg(193) Error E0025 Invalid RETURN from within of SEQUENCE code
D:\FDB\main.prg(224) Error E0030 Syntax error "syntax error at 'E'"
D:\FDB\main.prg(226) Error E0025 Invalid RETURN from within of SEQUENCE code
D:\FDB\main.prg(242) Error E0030 Syntax error "syntax error at 'E'"
D:\FDB\main.prg(244) Error E0025 Invalid RETURN from within of SEQUENCE code
D:\FDB\main.prg(255) Error E0030 Syntax error "syntax error at 'E'"
D:\FDB\main.prg(257) Error E0025 Invalid RETURN from within of SEQUENCE code
D:\FDB\main.prg(283) Error E0030 Syntax error "syntax error at 'E'"
D:\FDB\main.prg(285) Error E0025 Invalid RETURN from within of SEQUENCE code
13 errors
No code generated.
hbmk2: Erro: Executando o compilador Harbour (interno): 1
(C:\hmg.3.1.1\harbour\bin\harbour.exe) -n2 D:\FDB\main.prg -q -oC:\Users\Usuario\AppData\Local\Temp\hbmk_s4kjxv.dir\ -iC:\hmg.3.1.1\harbour\include -i. -iC:\hmg.3.1.1\include
-
luiz antonio da silva
- Usuário Nível 3

- Mensagens: 161
- Registrado em: 21 Nov 2006 22:12
- Localização: serrana-sp
FBD no HMG
Olá Guanabara !
Me parece ser coisas simples (tipo versão de hmg), aqui na empresa só tenho minigui, em casa vou ver e posto o resultado blz.
Luiz.
Me parece ser coisas simples (tipo versão de hmg), aqui na empresa só tenho minigui, em casa vou ver e posto o resultado blz.
Luiz.
HMG 3.4.4 - SQL SERVER - ORACLE
FBD no HMG
Estou fazendo uns testes aqui e descobri o seguinte... Mudei o conteúdo do arquivo "adodb.ch" que você postou para um outro que achei aqui no Forum: https://pctoledo.org/download/agenda.rar que tem este mesmo arquivo mas com conteúdo diferente que segue:
daí compilei e apareceu apenas um erro nesta linha , apaguei a mesma e compilei novamente daí criou o executável, só que o programa não localiza o banco dizendo "ERRO COM NA CONEXÃO COM FIREBIRD, TENTAR NOVAMENTE ?"... Então, nos meu testes anteriores cheguei nesse ponto também através deste link https://pctoledo.org/forum/viewto ... fdb#p81879 que você mesmo postou.... O que será que tá faltando
?? Vou tentando por aqui....
Código: Selecionar todos
*
* 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
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
*********************/
Código: Selecionar todos
Set ToolTipBalloon On-
luiz antonio da silva
- Usuário Nível 3

- Mensagens: 161
- Registrado em: 21 Nov 2006 22:12
- Localização: serrana-sp
FBD no HMG
Olá Guanabara !
Desculpe a demora....fico contente que tenha conseguido resolver os problemas, o erro de conexão pode ser:
1) Drive ODBC (Firebird ODBC)
2) FBCLIENT.DLL faltando na pasta da aplicação
3) Falta do arquivo FDB...rs
4) Nome de usuário e senha do seu banco informados na linha de conexão ex:
UID=SYSDBA;PWD=masterkey
UID é o usuário
PWD é a senha.
um ou mais dos dados acima é o problema a ser resolvido aí...blz.
Luiz.
Desculpe a demora....fico contente que tenha conseguido resolver os problemas, o erro de conexão pode ser:
1) Drive ODBC (Firebird ODBC)
2) FBCLIENT.DLL faltando na pasta da aplicação
3) Falta do arquivo FDB...rs
4) Nome de usuário e senha do seu banco informados na linha de conexão ex:
UID=SYSDBA;PWD=masterkey
UID é o usuário
PWD é a senha.
um ou mais dos dados acima é o problema a ser resolvido aí...blz.
Luiz.
HMG 3.4.4 - SQL SERVER - ORACLE
FBD no HMG
Valeu Luiz, acertou na mosca, vamos de traz para frente para ficar bem claro para os amigos que estiverem acompanhando o desenrolar do Post:
Essas informações já estavam preenchidas no seu código: ACFDB.PRG e não modifiquei.luiz antonio da silva escreveu: 4) Nome de usuário e senha do seu banco informados na linha de conexão ex:
UID=SYSDBA;PWD=masterkey
UID é o usuário
PWD é a senha.
Pode rir mesmo, não é de duvidar que eu esqueça do banco, mas não foi dessa vez.3) Falta do arquivo FDB...rs
Também não esqueci, antes do seu post nem sabia da existência desse arquivo, mas copiei da Pasta do Firebird e já estava dentro da pasta FDB.2) FBCLIENT.DLL faltando na pasta da aplicação
Foi aqui.... Outra coisa que não tinha conhecimento, pra mim quando instalava o Firebird já tava tudo certo, fiz o download http://ufpr.dl.sourceforge.net/project/ ... _Win32.exe, instalei o ODBC e daí 1000%, FUNCIONOU perfeitamente, fiz as modificações das tabelas conforme meu banco e nada mais, Obrigado mesmo Luiz arrumei uma outra pessoa pra dar trabalho..... Quem diga nosso amigo Pablo...... Como diz nós Araçatubenses.... Voooootttiiii meu.... hehehehhe :{1) Drive ODBC (Firebird ODBC)
-
luiz antonio da silva
- Usuário Nível 3

- Mensagens: 161
- Registrado em: 21 Nov 2006 22:12
- Localização: serrana-sp
FBD no HMG
Olá Guanabara !
Fico muito contente que tenha dado tudo certo, é realmente fantástico quando vencemos novos obstáculos, aqui no forum sempre encontrei respostas para minhas dúvidas, o pessoal aqui tá de parabens, especialmente o Pablo, que além de muito conhecimento tem um coração apaixonado pelo que faz, e compartilha tudo o que sabe com muita alegria. :)Pos
Abraço.
Luiz.
Fico muito contente que tenha dado tudo certo, é realmente fantástico quando vencemos novos obstáculos, aqui no forum sempre encontrei respostas para minhas dúvidas, o pessoal aqui tá de parabens, especialmente o Pablo, que além de muito conhecimento tem um coração apaixonado pelo que faz, e compartilha tudo o que sabe com muita alegria. :)Pos
Abraço.
Luiz.
HMG 3.4.4 - SQL SERVER - ORACLE
FBD no HMG
Amigos,
Podem me enviar link com algum drive ODBC para FireBird que vocês usem. Já baixei vários mas nada funcionando...
Podem me enviar link com algum drive ODBC para FireBird que vocês usem. Já baixei vários mas nada funcionando...
-
luiz antonio da silva
- Usuário Nível 3

- Mensagens: 161
- Registrado em: 21 Nov 2006 22:12
- Localização: serrana-sp
FBD no HMG
Boa Noite Vilian !
já tentou usar o que tá no link abixo ?
http://ufpr.dl.sourceforge.net/project/ ... _Win32.exe
uso já tem algum tempo sem problemas.
Abraço.
Luiz.
já tentou usar o que tá no link abixo ?
http://ufpr.dl.sourceforge.net/project/ ... _Win32.exe
uso já tem algum tempo sem problemas.
Abraço.
Luiz.
HMG 3.4.4 - SQL SERVER - ORACLE
