Сохранение на диск базы данных в оперативной памяти

Я нахожусь на Angular 4.0.0, используя preboot / angular-webpack , и должен был пойти немного иначе.

Решение, предоставленное @Taytay, в основном работало для меня:

npm install --save lodash
npm install --save @types/lodash

и импортирования функций в заданный файл .component.ts, используя:

import * as _ from "lodash";

Это работает, потому что нет стандартного экспортированного класса. Разница в моей: мне нужно было найти способ загрузки в сторонних библиотеках: vendor.ts, который сидел на:

src/vendor.ts

Теперь файл vendor.ts выглядит следующим образом:

import '@angular/platform-browser';
import '@angular/platform-browser-dynamic';
import '@angular/core';
import '@angular/common';
import '@angular/http';
import '@angular/router';

import 'rxjs';
import 'lodash';

// Other vendors for example jQuery, Lodash or Bootstrap
// You can import js, ts, css, sass, ...

24
задан Giancarlo 17 September 2009 в 07:53
поделиться

3 ответа

22
ответ дан 29 November 2019 в 00:15
поделиться

Если Вы не, имеют достаточно времени, чтобы прочитать целую документацию, отправленную ответом @NickDandoulakis, просто скопировать и вставить ниже функции (уже упомянутый в ссылке) в Вашем коде:

int loadOrSaveDb(sqlite3 *pInMemory, const char *zFilename, int isSave) 
{
   int rc;                   /* Function return code */
   sqlite3 *pFile;           /* Database connection opened on zFilename */
   sqlite3_backup *pBackup;  /* Backup object used to copy data */
   sqlite3 *pTo;             /* Database to copy to (pFile or pInMemory) */
   sqlite3 *pFrom;           /* Database to copy from (pFile or pInMemory) */

   rc = sqlite3_open(zFilename, &pFile);
   if (rc == SQLITE_OK) 
   {

      pFrom = (isSave ? pInMemory : pFile);
      pTo = (isSave ? pFile : pInMemory);

      pBackup = sqlite3_backup_init(pTo, "main", pFrom, "main");
      if (pBackup) {
         (void)sqlite3_backup_step(pBackup, -1);
         (void)sqlite3_backup_finish(pBackup);
      }
      rc = sqlite3_errcode(pTo);
   }

   (void)sqlite3_close(pFile);
   return rc;
}

и затем для того, чтобы сохранить данные Вашего дб SQLite (в памяти) в вызов файла:

loadOrSaveDb(db_con, target_file, 1);

то, Которое db_con Ваш указатель объекта соединения с базой данных и target_file, является адресом конечного файла.

Комментарий: , Если Вы хотите загрузить файл базы данных SQLite в память, просто работайте:

loadOrSaveDb(db_con, target_file, 0);
0
ответ дан 29 November 2019 в 00:15
поделиться

Используйте оператор транзакции, прежде чем что-либо делать с таблицей. Это также обеспечивает быструю обработку и откат. Таким образом, вам не нужно напрямую размещать базу данных в памяти.

2
ответ дан 29 November 2019 в 00:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: