Conectarse a base de datos HFSQL Classic

Hola a todos, podra alguien ayudarme con un ejemplo de cdigo si se puede conectar a una base de datos HFSQL Classic, de la sociedad pcsoft, en un Mac OS.
HFSQL Classic la utilizo en windows 10 pero en mac quisiera crear la aplicacin que tengo ya acabada en windows.
Es una base de datos que funciona tambin en el sistema Mac OS.
Gracias por cualquier ayuda y saludos a todos,

Desconozco por completo esa BBDD… Has probado por ODBC? Y migrar a un motor de base de datos más abierto?

Hola Javier,
Gracias por responder, la verdad es que nunca he usado odbc y no soy desarrollador profesional, por eso agradecera si es posible que alguien me hiciera un ejemplo de como conectarme a la base de datos teniendo en cuenta que tiene una clave secreta para conectarse a ella.
Te envio un enlace para que sepas de que base de datos se trata : https://www.windev.es/pcsoft/hfsql.htm
Que tengo que hacer?
Gracias por cualquier ayuda…
Saludos,

Juan

Aqui te indico la tabla.
La tabla es : Miembros.fic
Clave secreta : prueba

I la base de datos es : TerritosDB

Hola,

Al tratarse de un motor de bases de datos propietario, lo ms recomendable sera exportar la estructura + datos a otro motor estndar como pueda ser PostgreSQL o bien MySQL (cliente/servidor) o bien SQLite (embebido, distribuido junto con la aplicacin).

Probablemente el entorno que utiliza este formato de base de datos proporcione las herramientas o mecanismos, mediante la generacin de un pequeo programa, que permita exportar como mnimo los datos de la(s) tabla(s) para que puedan ser importados en otras bases de datos estndar.

Javier

Hola Javier y gracias por tu inters.
La verdad es que me hubiera convenido poder utilizar la base de datos mencionada para no perder tiempo de estructurar la nueva base de datos y tener que hacer cambios en windows…
Pienso que no me queda otra que pensar usar otra base de datos, como sqlite.
Una pregunta, para una aplicacin de facturacin, se podra usar bien sqlite para un uso monousuario o estara limitado a nivel de registros a crear que con los el tiempo creceran ?
Gracias Javier y buen da

Juan

Creme, ganars tiempo.

A la larga, utilizar bases de datos que no son abiertas resulta una mala idea, puesto que el ncleo del negocio de la aplicacin (los datos) quedan “cautivos” y no te ata en cuanto a capacidades de expansin.

SQLite es perfectamente vlido para lo que buscas. En cuanto a la cantidad de registros que se crearn con el tiempoNO debera de ser un problema. Todo depende de como estructures y mantengas la base de datos cuando esta alcance un volumen determinado. Hoy por hoy son infinidad las soluciones de todo tipo (incluyendo sistemas operativos) que utilizan SQLite como base de datos para el almacenamiento de todo tipo de informacin.

Incluso, en el futuro, y al tratarse de SQL, no encontrars mayor problema para completar por ejemplo con soluciones multiusuario empleando MySQL o, preferiblemente, PostgreSQL.

Javier

Gracias por tu respuesta Javier.
Una última pregunta, cuando hago un encriptado de sqlite cuando inicio el programa en el Open event primero hago un décrypt y me conecto a sqlite, pero!! una vez que queda la abro la base de datos queda sin protección, hay que decriptarla cuando la abres y luego encriptarla otra vez cada vez que tienes que manipular los datos, o cual es la mejor solución para que no quede expuesta o abierta por motivos de seguridad?
Disculpa pero no soy muy bueno en explicarme y espero comprendas lo que quiero decir…
Juan

Hola,

Cuando cifras una base de datos SQLite esta continúa cifrada en archivo… sólo has de introducir la contraseña antes de conectar con ella para poder trabajar desde el código.

Además, en este sentido, desde Xojo 2018r1 es posible utilizar el cifrado más fuerte de 256 bits. Hasta ahora venía siendo de 128.

Javier

Entonces porque cuando abro con el Finder la base de datos esta se muestra abierta en el programa DB Browser ?

Tal vez hago algo mal, uso el siguiente cdigo :

If dbFile Is Nil Then Return

App.DB = New SQLiteDatabase
App.DB.DatabaseFile = dbFile
App.DB.EncryptionKey = trim(txtClaveSecretaBD.Text)

If Not App.DB.Connect Then
MsgBox("Imposible de conectarse a la base de datos TerritosDB : " + App.DB.ErrorMessage)

else
App.DB.Decrypt

//Verifico si hay usuarios
Dim sql As String
sql = “SELECT * FROM Usuarios”

Dim data As RecordSet
data = App.DB.SQLSelect(sql)

If App.DB.Error Then
MsgBox("Error de contado de usuarios : " + App.DB.ErrorMessage)
Return
else
//si no hay usuarios creo nuevos en el formulario de edicion de usuarios
if data.RecordCount = 0 then
wUsuariosPrograma.ShowModal
end if

End If

End If

Hola, as es como se ve el contenido del archivo SQLite cuando la base de datos est cifrada y en uso desde la aplicacin en Xojo:

https://ibb.co/ifv3xy

Los contenidos no estn en claro.

Puede estar ocurriendo que se desencripte en todos los casos? Puedes trazar el cdigo paso a paso para ver si es esto lo que ocurre…

Javier

Gracias Javier, comprobar todo otra vez.
Muchas gracias por tu ayuda.

Juan