Как получить правильный путь для базы данных sqflite Flutter? - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь создать локальную базу данных с Flutter на Android. Первоначально я создал каталог с определенным каталогом, который работал отлично, затем я удалил приложение с устройства (не AVD). Затем, когда я попытался создать базу данных с новым каталогом пути к файлу, я получил это исключение:

Exception has occurred.
SqfliteDatabaseException (DatabaseException(near ")": syntax error (Sqlite code 1 SQLITE_ERROR): , while compiling: CREATE TABLE KPoint (id INTEGER PRIMARY KEY,subject INTEGER,module INTEGER,type TEXT,definition TEXT,), **(OS error - 2:No such file or directory))** sql 'CREATE TABLE KPoint (id INTEGER PRIMARY KEY,subject INTEGER,module INTEGER,type TEXT,definition TEXT,)' args []})

(ошибка ОС - 2: нет такого файла или каталога))

Это мой блок инициализации, который запускается в одиночном экземпляре в первый раз:

import 'package:path_provider/path_provider.dart';
      initDB() async {
        Directory documentsDirectory = await getApplicationDocumentsDirectory();
        print(documentsDirectory.uri);
        String path = join(documentsDirectory.path, "database.db");
        return await openDatabase(
          path,
          version: 1,
          onOpen: (db) {},
          onCreate: (Database db, int version) async {
            print('Creating db...');
            await db.execute("CREATE TABLE KPoint ("
                "id INTEGER PRIMARY KEY,"
                "subject INTEGER,"
                "module INTEGER,"
                "type TEXT,"
                "definition TEXT,"
                ")");
          },
          onUpgrade: (db, oldVersion, newVersion) {
            print('Upgrade has been called...');
          },
        );
      }

Какой путь к каталогу мне нужно передать в openDatabase(..), что приемлемо?

1 Ответ

1 голос
/ 28 апреля 2020

Я не думаю, что "," в конце необходимо.

от

"definition TEXT,"

до

"definition TEXT"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...