_HB_FUN_DBFCDX

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

RenatoMM
Usuário Nível 1
Usuário Nível 1
Mensagens: 1
Registrado em: 06 Jun 2022 21:58
Localização: Curitiba/Pr.

_HB_FUN_DBFCDX

Mensagem por RenatoMM »

Estou compilando meu sistema com o XHarbour 1.2.1 e BCC5.8, e está dando o seguinte erro:
Unresolved External _HB_FUN_DBFCDX referenced from prog1.obj
Falha na execução, retornou: 2
Alguma dica???
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

_HB_FUN_DBFCDX

Mensagem por alxsts »

Olá!

Seja bem-vindo ao fórum Renato!

Inclua em teu PRG principal as linhas 3 e 5 mostradas abaixo.

Código: Selecionar todos

FUNCTION Main()

   REQUEST DBFCDX

   RddSetDefault( "DBFCDX" )

   //
   // código...
   //

RETURN NIL
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

_HB_FUN_DBFCDX

Mensagem por JoséQuintas »

Só comentário:

REQUEST tá mais pra uso em linquedição.
Por isso eu costumo deixar no topo do arquivo, assim como #define, #include, etc.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
carlaoonline
Usuário Nível 3
Usuário Nível 3
Mensagens: 190
Registrado em: 24 Ago 2014 22:38
Localização: Porto Alegre-RS

_HB_FUN_DBFCDX

Mensagem por carlaoonline »

Boa tarde!

Uma dica:

Não tenho muita experiência mas depois de um tempo, percebi nas minhas compilações, que recebo esse erro por colocar no código uma função que não existe,

Por exemplo:

Código: Selecionar todos

...
@ 10,10 say "Fechando o arquivo!"
DbClose("Vendas")


No caso acima, DbClose() não é uma função válida, o certo seria DbCloseArea(), e nesse caso ao compilar retorna o erro abaixo...

" Error: Unresolved external '_HB_FUN_DBCLOSE' referenced from C:\USERS\..... "

A questão é que esse erro não informa a linha, somente a palavra: '_HB_FUN_DBCLOSE

Nesse caso eu procuro no meu código a palavra sempre após o _HB_FUN_ seguido de um parêntese: DBCLOSE(

e ali verifico o que pode ser.

No seu caso eu procuraria por DBFCDX( pois acredito que tenha um parêntese após a palavra, e DBFCDX() não é uma função.

Talvez tenha esquecido de digitar algo na frente, ou algo assim...
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

_HB_FUN_DBFCDX

Mensagem por JoséQuintas »

Lembrou certo, apesar da explicação...

Quando usa REQUEST ou funções no fonte, se não tem fonte com ela, o linqueditor pesquisa nas LIBs.
Mas... só nas LIBs indicadas ou LIBs padrão.
Pode acontecer como ele comentou, de nome errado.
Mas pode ser que faltou indicar a LIB a ser pesquisada.

Verifique na forma que está compilando, como é que faz pra indicar a DBFCDX.
Não basta alterar no fonte, a linquedição precisa saber aonde procurar a LIB, e provavelmente até o nome da LIB que contém a função.
Nem todas são pesquisadas automaticamente, ainda mais XHarbour e os makes dele.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

_HB_FUN_DBFCDX

Mensagem por clodoaldomonteiro »

Do manual do xHarbour, para fechar a tabela em uso:

Código: Selecionar todos

DbCloseArea()
Closes a database file in a work area. 
Syntax
DbCloseArea() --> NIL

Return
The return value is always NIL. 
Description
The DbCloseArea() function closes the database open in the current work area and all associated files, like index or memo files. Use an aliased expression to close a database in a different work area. 
Closing a database causes all pending file buffers being flushed to disk before files are closed. Also, all file and record locks are released when files are closed. 
Info
See also: CLOSE, DbCloseAll(), DbCommit(), DbUseArea(), USE 
Category: Database functions 
Source: rdd\dbcmd.c 
LIB: xhb.lib 
DLL: xhbdll.dll 

Example
   PROCEDURE Main()
      USE Customer ALIAS Cust
      ? (1)->(Used())                  // result: .T.

      DbEdit()

      Cust->(DbCloseArea())

      ? (1)->(Used())                  // result: .F.
   RETURN

Você pode usar também: "USE", pra fechar a tabela em uso.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Responder