Conectarse a base de datos HFSQL Classic

  1. 3 weeks ago

    Hola a todos, podría alguien ayudarme con un ejemplo de código 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 aplicación que tengo ya acabada en windows.
    Es una base de datos que funciona también en el sistema Mac OS.
    Gracias por cualquier ayuda y saludos a todos,

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

    https://ibb.co/ifv3xy

    Los contenidos no están en claro.

     ¿Puede estar ocurriendo que se desencripte en todos los casos? Puedes trazar el código paso a paso para ver si es esto lo que ocurre...

    Javier

  2. Javier M

    Jun 4 Pre-Release Testers, Xojo Pro AprendeXojo - Madrid, Spain

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

  3. Hola Javier,
    Gracias por responder, la verdad es que nunca he usado odbc y no soy desarrollador profesional, por eso agradecería 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

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

  5. I la base de datos es : TerritosDB

  6. 2 weeks ago

    Javier M

    Jun 11 Pre-Release Testers, Xojo Pro AprendeXojo - Madrid, Spain

    Hola,

    Al tratarse de un motor de bases de datos propietario, lo más recomendable sería exportar la estructura + datos a otro motor estándar como pueda ser PostgreSQL o bien MySQL (cliente/servidor) o bien SQLite (embebido, distribuido junto con la aplicación).

    Probablemente el entorno que utiliza este formato de base de datos proporcione las herramientas o mecanismos, mediante la generación de un pequeño programa, que permita exportar como mínimo los datos de la(s) tabla(s) para que puedan ser importados en otras bases de datos estándar.

    Javier

  7. Hola Javier y gracias por tu interés.
    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 aplicación de facturación, se podría usar bien sqlite para un uso monousuario o estaría limitado a nivel de registros a crear que con los el tiempo crecerían ?
    Gracias Javier y buen día

    Juan

  8. last week

    Javier M

    Jun 12 Pre-Release Testers, Xojo Pro AprendeXojo - Madrid, Spain

    Créeme, ganarás tiempo.

    A la larga, utilizar bases de datos que no son abiertas resulta una mala idea, puesto que el núcleo del negocio de la aplicación (los datos) quedan "cautivos" y no te ata en cuanto a capacidades de expansión.

    SQLite es perfectamente válido para lo que buscas. En cuanto a la cantidad de registros que se crearán con el tiempo… NO debería 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 información.

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

    Javier

  9. 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

  10. Javier M

    Jun 13 Pre-Release Testers, Xojo Pro AprendeXojo - Madrid, Spain

    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

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

  12. Tal vez hago algo mal, uso el siguiente código :

    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

  13. Javier M

    Jun 13 Pre-Release Testers, Xojo Pro Answer AprendeXojo - Madrid, Spain
    Edited last week

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

    https://ibb.co/ifv3xy

    Los contenidos no están en claro.

     ¿Puede estar ocurriendo que se desencripte en todos los casos? Puedes trazar el código paso a paso para ver si es esto lo que ocurre...

    Javier

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

    Juan

or Sign Up to reply!