Ícono del sitio Embarcadero RAD Studio, Delphi, & C++Builder Blogs

Nuevo controlador FireDAC para SQLite SEE

fire dac logo

Embarcadero ha puesto a disposición un nuevo controlador FireDAC para la base de datos SQLite Encryption Extension (SEE). La descarga está en GetIt y aquí hay algunos detalles detrás de esta decisión.


RAD Studio 11 Alexandria, al igual que las versiones anteriores, se envía con un controlador FireDAC para la base de datos SQLite que ofrece dos enfoques diferentes para la entrega. Una opción es la vinculación estática, es decir, compilar SQLite en el binario de su aplicación, vinculando el código compilado. La segunda opción es la vinculación dinámica, es decir, utilizar una DLL SQLite externa. Las dos alternativas y sus configuraciones para diferentes plataformas se tratan en detalle en:

https://docwiki.embarcadero.com/RADStudio/Sydney/en/Connect_to_SQLite_database_(FireDAC)

Cifrado FireDAC SQLite

La versión de enlace estático del controlador FireDAC SQLite ofrece soporte de cifrado de base de datos, utilizando un mecanismo de enlace de base de datos (SQLITE_HAS_CODEC) que ahora ha sido  eliminado  de las últimas versiones de SQLite por el equipo de desarrollo de la base de datos. Por esta razón, FireDAC todavía admite el cifrado SQLite en la última versión de SQLite con la “función”. Si desea la última versión de SQLite y no necesita cifrado, puede usar la versión DLL.

En el futuro, el plan es desaprobar el cifrado FireDAC SQLite o al menos proporcionarlo como una opción heredada, y pasar a la última versión de SQLite también para la versión compilada estáticamente. Tenga en cuenta también que si pasa del controlador FireDAC SQLite Encryption al controlador FireDAC SQLite Encryption Extension (SEE), terminará con una implementación de cifrado diferente: por esta razón, los archivos de la base de datos SQLite no serán compatibles.

Extensión de cifrado SQLite (VER)

El camino a seguir con SQLite Encryption de Hwaci (la compañía detrás de SQLite) es recomendar el uso de SQLite Encryption Extension (SEE), una versión paga de SQLite. Puede leer más sobre esta base de datos en estos enlaces:

Dado que algunos clientes solicitaron esto para admitir SQLite EE, Embarcadero ha creado un controlador FireDAC específico. Tenga en cuenta que el acuerdo de licencia indica que debe utilizar enlaces estáticos (pero, como no soy abogado, consulte la licencia vinculada anteriormente para obtener más detalles). Ningún tercero como Embarcadero tiene derecho a distribuir la fuente de la biblioteca o el código binario compilado. Entonces, lo que Embarcadero ofrece a los desarrolladores es el código fuente del nuevo controlador FireDAC, además de algunos scripts basados ​​en C ++ Builder para compilar la biblioteca. Tendrá que construir y vincular las dos piezas (código de biblioteca y unidad Delphi) juntas en su sistema de desarrollo, y esto puede requerir ser propietario de RAD Studio completo, ya que necesita compilar tanto el código C ++ como el código Delphi.

Considere InterBase ToGo como alternativa

Antes de pasar a la descarga y al lado práctico, observe que, dependiendo de sus plataformas de destino y otros requisitos, puede considerar el uso de  InterBase ToGo  y su soporte de cifrado de base de datos como una alternativa a SQLite EE: el modelo de precio es un poco diferente, lo que hace Es difícil comparar directamente, pero estoy seguro de que el equipo de ventas de Embarcadero puede ayudarlo a averiguarlo.

Descargar Driver GetIt

Como se mencionó, la descarga está disponible en un nuevo paquete GetIt específico para clientes con una suscripción de actualización activa:

Embarcadero hará que la descarga esté disponible también en el portal de clientes en breve. A continuación, adjunto el léame de este paquete GetIt con información adicional.

Archivo Léame del controlador FireDAC SQLite SEE

Este es el texto completo del archivo Léame en el paquete:

Clases de envoltura de API estáticas FireDAC SQLite SEE, Copyright 2021 Embarcadero Technologies. Reservados todos los derechos.
El uso está sujeto al EULA de RAD Studio 11, consulte https://www.embarcadero.com/products/rad-studio/rad-studio-eula

SQLite Encryption Extension (SEE) es un producto de Hipp, Wyrick & Company, Inc. (Hwaci) y está sujeto a
la licencia disponible en https://www.hwaci.com/sw/sqlite/license-see.html

=== Enlace estático
Esta es la forma recomendada de usar SQLite SEE con su aplicación. Utilice la nueva unidad FireDAC.Phys.SQLiteWrapper.SEEStat.pas.
Permite el enlace estático de sqlite3 SEE a una aplicación. Esta unidad se proporciona a los clientes solo como archivo PAS, porque
para producir DCU / etc necesitamos sqlite3.obj, que está sujeto a la restricción de licencia de SQLite SEE.

Uso:
* Establecer FDPhysSQLiteDriverLink.Linkage = slSEEStatic. Esto agregará automáticamente FireDAC.Phys.SQLiteWrapper.SEEStat a la cláusula “uses”
* … o incluirá FireDAC.Phys.SQLiteWrapper.SEEStat en lugar de FireDAC.Phys.SQLiteWrapper.Stat en la cláusula de usos de la aplicación
* Make FireDAC.Phys.SQLiteWrapper.SEEStat. pas accesible al compilador
* Compilar sqlite3 SEE y producir sqlite3_x86.obj / sqlite3_x64.obj. Consulte la sección “Recompilación de SQLite SEE” a continuación
* Coloque sqlite3_x86.obj / sqlite3_x64.obj en la carpeta con FireDAC.Phys.SQLiteWrapper.SEEStat.pas

=== Enlace dinámico
Esto está sujeto a restricciones de redistribución (consulte la licencia de Hwaci)

Uso:
* Establecer FDPhysSQLiteDriverLink.Linkage = slDynamic
* Establecer FDPhysSQLiteDriverLink.SEEKey = ‘xxx’, donde ‘xxx’ es la clave de activación VER
Puede leer más detalles en “wwwreadme.wiki” VER archivo de distribución, capítulo “Interfaz 5.0 C”
* Proporcionar sqlite3.dll VER la versión y hacerla accesible para la aplicación FireDAC

=== Lo que funciona, lo que no
admite FireDAC SQLite encryption (FSE) admite funciones que SQLite SEE no admite:
* cuando se especifica una contraseña incorrecta, FSE devolverá “contraseña incorrecta”, SEE siempre devuelve “el archivo no es una base de datos ”
* FSE puede devolver el algoritmo de cifrado actual, SEE no puede
* la lista de valores posibles para el parámetro de definición de conexión” Cifrar “FireDAC tiene valores compatibles con FSE, no SEE

Tenga en cuenta que las bases de datos existentes creadas con el cifrado FireDAC SQLite no son compatibles con las bases de datos SQLite SEE.
Cuando construya su aplicación, será bueno obtener primero los informes del entorno de FireDAC, para asegurarse de que se utiliza “el SQLite correcto”.

=== Recompilación de SQLite SEE
Utilice sqlite_compile.bat proporcionado para producir sqlite3_x86.obj / sqlite3_x64.obj. Antes de ejecutar sqlite_compile.bat, actualícelo y establezca estas variables en sus valores reales:
* BDS – carpeta de instalación de RAD Studio
* SQLITE_SRC – ruta al archivo fuente sqlite

Salir de la versión móvil