Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

getDatabase() não está sendo reconhecido pelo sqflite

No database não estou consegundo utilizar o getDatabase(), dei uma rápida olhada na documentação do sqflite e me pareceu que não tem esse método na nova versão, alguém passando pela mesma situação?

Abaixo segue meu SAVE como exemplo.

Future<int> save(Contact contact) async {
  final Database db = await getDatabase();
  final Map<String, dynamic> contactMap = Map();
  contactMap['name'] = contact.name;
  contactMap['account_number'] = contact.accountNumber;
  return db.insert('contacts', contactMap);
}
4 respostas

na documentação tem referencia ao openDatabase e não ao getDatabasa.

Estou com o mesmo problema

Mano, achei o erro. Tem um momento na aula que ele renomeou o createDatabase para getDatabase, só que mudou uma parte do código que já havia passado aí, eu e você, em vez de renomear simplesmente escrevemos getDatabase por isso não funcionou. Ou seja, vc precisa modificar também a primeira Future. Agora funcionou.

Future<Database> **getDatabase**() async {
  final String path = join(await getDatabasesPath(), 'byteBank01.db');
  //byteBank.db é o nome do arquivo que representará o banco de dados
  return openDatabase(path, onCreate: (db, version) {
    db.execute('CREATE TABLE contacts('
        'id INTEGER PRIMARY KEY, '
        'name TEXT, '
        'account_number INTEGER)');
  }, version: 1);
}
    Future<int> save(Contact contact) async {
  final Database db = await **getDatabase**();
  final Map<String, dynamic> contactMap = Map();
  contactMap['name'] = contact.name;
  contactMap['account_number'] = contact.accountNumber;
  return db.insert('contacts', contactMap);
}
Future<List<Contact>> findAll() async {
  final Database db = await** getDatabase**();
  final List<Map<String, dynamic>> result = await db.query('contacts');
  final List<Contact> contacts = [];
  for (Map<String, dynamic> row in result) {
    final Contact contact =
    Contact(row['id'], row['name'], row['account_number'],
    );
    contacts.add(contact);
  }
  return contacts;
}
solução!

Boa noite Ronaldo,

O Waldir está certo, fazendo dessa maneira está correto. Waldir, muito obrigado pelo complemento e ajuda.

Desde já, agradeço.