Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Solução para o problema "no such table: tasktable in "SELECT * FROM tasktable""

Pesquisei bastante e vi que todos estava com o mesmo problema... no final apelei pro chat GPT, não sei se essa e a melhor forma de resolver um problema mas não me vi em outra escolha, peço que me corrija caso seja uma má pratica.

descobri que o problema era na versão que estava sendo aplicada, então fui indicado a fazer um upgrade na versão do banco de dados, segue o codigo: Future<Database> getDatabase() async { final String path = join(await getDatabasesPath(), 'task.db'); return openDatabase( path, version: 2, // Incrementando a versão onCreate: (Database db, int version) async { await db.execute(TaskDao.tablesql); }, onUpgrade: (Database db, int oldVersion, int newVersion) async { if (oldVersion < newVersion) { // Adicione as instruções SQL necessárias para criar a tabela await db.execute(TaskDao.tablesql); } }, ); }

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá Roberto!

Fico feliz em ver que você está se empenhando em resolver os problemas que surgem durante o aprendizado de Flutter e persistência de dados. Recorrer ao chat GPT pode ser útil para obter uma direção em como solucionar um problema, e não é uma má prática desde que você busque entender a solução proposta e como ela se aplica ao seu caso específico.

Pelo que você descreveu, parece que você enfrentou um problema comum ao trabalhar com bancos de dados SQLite no Flutter: a ausência da tabela esperada, que resulta no erro "no such table". Atualizar a versão do banco de dados e garantir que a tabela seja criada durante o onCreate ou onUpgrade é uma abordagem válida para resolver esse tipo de problema.

No código que você compartilhou, você incrementou a versão do banco de dados para 2 e adicionou um bloco de código no onUpgrade para criar a tabela caso a versão antiga seja menor que a nova. Isso é uma boa prática, pois permite que o banco de dados evolua sem perder os dados existentes e garante que as tabelas necessárias estejam presentes.

Apenas certifique-se de que TaskDao.tablesql contém a instrução SQL correta para criar a tabela tasktable. Se a tabela já deveria existir e você está apenas corrigindo um problema de versão, o código está correto. Se a tabela nunca foi criada, você precisará garantir que o onCreate também tenha a instrução para criá-la.

Quanto à imagem que você anexou, ela mostra a saída do console com várias mensagens de log, incluindo "Procurando dados no banco de dados... Encontrado: []", o que sugere que a consulta foi realizada, mas nenhuma tarefa foi encontrada no banco de dados. Isso é consistente com o que você descreveu na atividade, onde a tarefa não aparecia na interface do usuário após ser adicionada.

Se você ainda estiver enfrentando problemas ou tiver outras dúvidas, não hesite em buscar mais informações ou pedir ajuda. A comunidade de desenvolvimento é geralmente muito solidária e disposta a ajudar.

Espero ter ajudado e bons estudos!