Sulphide
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Кто-то мобильными приложениями занимается? В примерах к firemonkey есть несколько примеров) где используется sqllite и собственно инициализация базы через memtable: const DB_FILENAME = 'search_sqlite.sdb'; DB_PASSWORD = 'SQLitePassword'; DB_ENCRYPTION = 'aes-256'; DB_TABLE = 'Example'; procedure TDataModule1.InitializeDatabase; begin FDConnection1.Params.Values['Database'] := TPath.Combine(TPath.GetDocumentsPath, DB_FILENAME); FDTable1.TableName := DB_TABLE; if TFile.Exists(FDConnection1.Params.Values['Database'])=True then begin FDSQLiteSecurity1.Database := FDConnection1.Params.Values['Database']; end else begin FDConnection1.Open; // initialize table try FDTable1.FieldDefs.Clear; FDTable1.FieldDefs.Assign(FDMemTable1.FieldDefs); FDTable1.CreateTable(True); FDTable1.CopyDataSet(FDMemTable1, [coStructure, coRestart, coAppend]); finally FDConnection1.Close; end; // encrypt database FDSQLiteSecurity1.Database := FDConnection1.Params.Values['Database']; FDSQLiteSecurity1.Password := DB_ENCRYPTION + ':' + DB_PASSWORD; FDSQLiteSecurity1.SetPassword; end; FDConnection1.Params.Values['Encrypt'] := DB_ENCRYPTION; FDConnection1.Params.Password := DB_PASSWORD; FDConnection1.Open; SearchDatabase(''); FDMemTable1.Free; end; На винде все работает, хотя бывает тоже вылетает ошибка, на андроиде гарантировано либо база не найдена, либо таблица Example не найдена. Что не так? |