Inicio › Foros › Lenguajes de programación, desarrollo, código fuente › Delphi › Error Capability is not supported en SQLite FireDAC Delphi [RESUELTO]
Etiquetado: android, app, capability, delphi, delphi 12, error, firedac, firemonkey, not supported, resuelto, solución, solucionado, solved, sqlite, supported
- Este debate tiene 4 respuestas, 2 mensajes y ha sido actualizado por última vez el hace 2 semanas, 3 días por Varios.
-
AutorEntradas
-
04/08/2025 a las 20:18 #52500VariosModerador
Estoy desarrollando una app para Android que accede a una base de datos local SQLite encriptada. Uso Delphi 12 y Firemonkey. Tengo este código de ejemplo para acceder a la BD SQLite:
Delphi/Pascal12345678910111213141516171819202122232425262728293031323334353637fdConexion.Params.Values['Database'] := TPath.Combine(TPath.GetDocumentsPath, 'facturas.db');fdTablaFacturas.TableName := 'facturas';if TFile.Exists(fdConexion.Params.Values['Database']) thenbeginfdSQLiteSeguridad.Database := fdConexion.Params.Values['Database'];endelsebeginfdConexion.Open;tryfdTablaFacturas.FieldDefs.Clear;fdTablaFacturas.FieldDefs.Assign(fdMemTabla.FieldDefs);fdTablaFacturas.CreateTable(False);finallyfdConexion.Close;end;fdSQLiteSeguridad.Database := fdConexion.Params.Values['Database'];fdSQLiteSeguridad.Password := 'aes-256' + ':' + 'contraseña';fdSQLiteSeguridad.SetPassword;end;fdConexion.Params.Values['Encrypt'] := 'aes-256';fdConexion.Params.Password := 'contraseña';fdConexion.Open;fdTablaFacturas.IndexFieldNames := fdMemTabla.IndexFieldNames;fdMemTabla.LogChanges := False;fdMemTabla.FetchOptions.RecsMax := 300000;fdMemTabla.ResourceOptions.SilentMode := True;fdMemTabla.UpdateOptions.LockMode := lmNone;fdMemTabla.UpdateOptions.LockPoint := lpDeferred;fdMemTabla.UpdateOptions.FetchGeneratorsPoint := gpImmediate;TTask.Run(procedure beginfdTablaFacturas.Open;end);Y me muestra este error al hacer el fdConexion.Open:
Project Facturas.exe raised exception class EFDException with message ‘[FireDAC][Phys][SQLite][sqlite3]-303. Capability is not supported’.
[FireDAC][Phys][SQLite][sqlite3]-303. Capability is not supported.Aunque lo estoy desarrollando para Android, lo compilo en un equipo Windows, para realizar las pruebas. Esto creo que no tiene que ver porque en Android me muestra el mismo error.
¿A qué puede ser debido?
04/08/2025 a las 20:36 #52502alonsojpdSuperadministrador¿Tienes añadido al Uses esta unidad: FireDAC.Phys.SQLiteWrapper.FDEStat?
04/08/2025 a las 20:37 #52503VariosModeradorNo, tengo estas:
uses
System.SysUtils, System.Classes, FireDAC.Stan.Intf, FireDAC.Stan.Option,
FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf,
FireDAC.DApt.Intf, FireDAC.Stan.StorageBin, FireDAC.Stan.Async, FireDAC.DApt,
FireDAC.UI.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Phys,
FireDAC.Phys.SQLite, FireDAC.Phys.SQLiteDef, FireDAC.Stan.ExprFuncs,
FireDAC.FMXUI.Wait, Data.DB, FireDAC.Comp.Client, FireDAC.Comp.DataSet,
REST.Types, REST.Response.Adapter, REST.Client, Data.Bind.Components,
Data.Bind.ObjectScope, FireDAC.Phys.SQLiteWrapper.Stat;04/08/2025 a las 20:38 #52504alonsojpdSuperadministradorAñade esta y vuelve a probar la compilación:
FireDAC.Phys.SQLiteWrapper.FDEStat
uses
System.SysUtils, System.Classes, FireDAC.Stan.Intf, FireDAC.Stan.Option,
FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf,
FireDAC.DApt.Intf, FireDAC.Stan.StorageBin, FireDAC.Stan.Async, FireDAC.DApt,
FireDAC.UI.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Phys,
FireDAC.Phys.SQLite, FireDAC.Phys.SQLiteDef, FireDAC.Stan.ExprFuncs,
FireDAC.FMXUI.Wait, Data.DB, FireDAC.Comp.Client, FireDAC.Comp.DataSet,
REST.Types, REST.Response.Adapter, REST.Client, Data.Bind.Components,
Data.Bind.ObjectScope, FireDAC.Phys.SQLiteWrapper.Stat,
FireDAC.Phys.SQLiteWrapper.FDEStat;04/08/2025 a las 20:39 #52505VariosModeradorEstupendo, ahora ya me fuciona.
Resuelto, muchas gracias. -
AutorEntradas
- Debes estar registrado para responder a este debate.