Ola!
xHarbour eu nem sei se funciona...
Tente com o Harbour já postei aqui o acesso etc, via SQLMIX.
cRdd := RDDSETDEFAULT( "SQLMIX" )
cAttributes:="Server=;Database=127.0.0.1:c:\dados\tabelas.fdb;User=SYSDBA;Password=masterkey;Driver={Firebird/InterBase(r) driver};"
nConn := RDDINFO( RDDI_CONNECT,{"ODBC",cAttributes} )
IF nConn == 0
hwg_Msginfo( "Não conectado ao servidor: " + str(RDDINFO( RDDI_ERRORNO )) + hb_eol() + RDDINFO( RDDI_ERROR ) )
RDDSETDEFAULT( cRdd )
RETURN
ENDIF
DBUSEAREA( .T.,"SQLMIX", "select * from TB_PRODUTOS_BARRAS", "xa" )
index on id TO temp1
DBUSEAREA( .T.,"SQLMIX", "select * from TB_PRODUTOS_ESTOQUE", "xb" )
index on id TO temp2
//...Coloque aqui suas rotinas etc...
RddInfo(RDDI_DISCONNECT)
RDDSETDEFAULT( cRdd )
Veja que não tem nada de mais, tudo muito simples de entender.
Para incluir, alterar. Veja a sintaxe em qualquer lugar da NET.
Saudações,
Itamar M. Lins Jr.