System.Data.SQLite: VACUUM INTO база данных в памяти - PullRequest
0 голосов
/ 10 октября 2019

Сначала я использую System.Data.SQLite v1.0.111 , чтобы открыть соединение с базой данных в памяти, как показано ниже.

SQLiteConnection dest= new SQLiteConnection("FullUri='file:db1?mode=memory&cache=shared'");
dest.Open();

Затем у меня есть другая база данных sqlite, котораяоткрывается, как показано ниже.

SQLiteConnection src= new SQLiteConnection(@"Data Source=C:\db1.sqlite");
src.Open();

Затем я попытался VACUUM INTO SQL скопировать файловую базу данных в базу данных в памяти, и он выдал ошибку.

using( SQLiteCommand cmd = src.CreateCommand() )
{
    cmd.CommandText = $"VACUUM main INTO 'file:db1?mode=memory&cache=shared';";
    cmd.ExecuteNonQuery();
}

SQLiteException: недостаточно памяти

   at System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)
   at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
   at System.Data.SQLite.SQLiteDataReader.NextResult()
   at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
   at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery(CommandBehavior behavior)
   at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()

База данных в файле небольшая (20 КБ), но в ней недостаточно памяти?

Спасибо

...