1
resposta

NA HORA DE ADICIONAR A LISTA RECEBO O ISN'T DEFINED FOR THE TYPE

insira import 'package:alti_persistencia/models/compras.dart';
import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';
Future<Database>  createDatabase() {
   return getDatabasesPath().then((dbPath) {
    final String path = join(dbPath, 'alti.db');
    deleteDatabase(path);
    return openDatabase(path, onCreate: (db, version) {
      db.execute('CREATE TABLE compras('
          'id INTEGER PRIMARY KEY, '
          'produtos TEXT, '
          'fornecedor TEXT, '
          'cnpj INTEGER, '
          'data DATA, '
          'observacao INTEGER)');
    }, version: 1);
  });
}

Future<int> save (Compras compras){
  return createDatabase().then((db){
    final Map<String, dynamic> comprasMap = Map();
    comprasMap['id'] = compras.id;
    comprasMap['produtos'] = compras.produtos;
    comprasMap['fornecedor'] = compras.fornecedor;
    comprasMap['cnpj'] = compras.cnpj;
    comprasMap['data'] = compras.data;
    comprasMap['observacao'] = compras.observacao;
    return db.insert('compras', comprasMap);
  });
}


Future<List<Compras>> findALL() {
  return createDatabase().then((db){
    return db.query('compras').then((maps) {
      final  List<Compras> compras = List();
      for(Map<String, dynamic> map in maps){
        final Compras compras = Compras(
          map['id'],
          map['produtos'],
          map['fornecedor'],
          map['cnpj'],
          map['data'],
          map['observacao'],
        );
        compras.add(compras);
      }
      return compras;
    });
  });
}seu código aqui
1 resposta

Oi Felipe, tudo bem? Normalmente a mensagem ISN'T DEFINED FOR THE TYPE é retornada quando tentamos inserir um dado que não é do tipo que especificamos no banco de dados na criação da tabela. Um exemplo é: inserir texto em um campo que a tabela espera número.

No seu código notei que você criou um campo chamado "observacao" e que este campo é um INTEGER. Consegue revisar por favor se o valor que você está tentando salvar neste campo é realmente um número? Talvez o problema seja esse.

Um forte abraço e bom estudo! :)