Beranda › Forums › Belajar Flutter Mobile Apps Tingkat Menengah › error praktik SQLite part 2
- This topic has 12 replies, 3 voices, and was last updated 3 years, 9 months ago by Anonymous.
-
AuthorPosts
-
October 6, 2022 at 5:13 PM #169678
ada error seperti ini saat direstart E/SQLiteLog( 4115): (1) no such table: notes
October 11, 2022 at 1:29 PM #169867AnonymousHalo, sesuai pesan errornya ya
gk ada tabel notes, jadi perlu dibuat terelbih dahulu.
pastikan aja pas db create, nama tabel yang dicreate sudah sesuai. bisa diperhatikan lagi video nya atau bisa kirimin code kamu ke sini ya(untuk bagian databasenya).October 11, 2022 at 5:37 PM #169891import 'package:notes_app/models/note.dart'; import 'package:path/path.dart'; import 'package:sqflite/sqflite.dart'; class dataBaseHelper { static const TABLE_NOTES = 'notes'; static const TABLE_NOTES_ID = 'id'; static const TABLE_NOTES_NOTE = 'note'; static const TABLE_NOTES_TITLE = 'title'; static const TABLE_NOTES_ISPINNED = 'iSPinned'; static const TABLE_NOTES_UPDATEDAT = 'updated_at'; static const TABLE_NOTES_CREATEDAT = 'created_at'; static Future<Database> Init() async { final dpPath = await getDatabasesPath(); return openDatabase(join(dpPath, 'notes.db'), version: 1, onCreate: (newDb, version) { newDb.execute('''CREATE TABLE $TABLE_NOTES ( $TABLE_NOTES_ID TEXT PRIMARY KEY, $TABLE_NOTES_TITLE TEXT, $TABLE_NOTES_NOTE TEXT, $TABLE_NOTES_ISPINNED INTEGER, $TABLE_NOTES_UPDATEDAT TEXT, $TABLE_NOTES_CREATEDAT TEXT, )'''); }); } Future<List<Note>> GetAllNote() async { final db = await dataBaseHelper.Init(); final results = await db.query('notes'); List<Note> listNote = []; results.forEach((data) { listNote.add(Note.formDb(data)); }); return listNote; } Future<void> insertallNote(List<Note> listNote) async { final db = await dataBaseHelper.Init(); Batch batch = db.batch(); listNote.forEach((note) { batch.insert('note', note.toDb()); }); await batch.commit(); } }October 11, 2022 at 5:38 PM #169892siap coba saya lihat lagi videonya coach
October 12, 2022 at 1:55 PM #170016Anonymoussip, catatan aja ya
itu kan dari code kamu query buat create tablenya ada dibagian oncreate db ya
dan function oncreate itu hanya dijalankan 1x saat db nya pertama x dibuat, jadi kalau sebelumnya sudah kebuat dengan nama tabel yang salah. bisa tambahkan query create tablenya di function onupgrade, atau klo lebih mudah, bisa uninstall dulu aplikasi lama.October 20, 2022 at 3:37 PM #170489hallo coach ada dua error berbeda
1. saat run pakai web base ( chrome ) errornya missingpluginexception ( no implementattion found for method getdatabasespath on channel com.tekartik.sqflite) sudah di restart masih tetep muncul2. saat run pakai emulator android errornya masih sama databaseException(no such table: notes ( code 1 AQLITE_ERROR):, while compiling: SELECT* FORM notes) SQL ‘SELECT * FORM notes’ args
saya cantumkan githubnya coach
notes appOctober 21, 2022 at 1:51 PM #170509AnonymousHallo,
1. Kalau run di web menggunakan package sqflite pasti akan error, karena database sqlite itu merupakan database local, dan web tidak bisa menerapkan database tersebut. Jadi kalau mau dev aplikasi buat web, pastikan pakai package yang support untuk web.
2. ini saya sudah coba jalanin code kamu. pas dijalanin langsung dapat error ini di console
E/SQLiteLog( 8969): (1) near ")": syntax error in "CREATE TABLE notes ( E/SQLiteLog( 8969): id TEXT PRIMARY KEY, E/SQLiteLog( 8969): title TEXT, E/SQLiteLog( 8969): note TEXT, E/SQLiteLog( 8969): iSPinned INTEGER, E/SQLiteLog( 8969): updated_at TEXT, E/SQLiteLog( 8969): created_at TEXT, E/SQLiteLog( 8969): )" E/flutter ( 8969): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: DatabaseException(near ")": syntax error (code 1 SQLITE_ERROR): , while compiling: CREATE TABLE notes ( E/flutter ( 8969): id TEXT PRIMARY KEY, E/flutter ( 8969): title TEXT, E/flutter ( 8969): note TEXT, E/flutter ( 8969): iSPinned INTEGER, E/flutter ( 8969): updated_at TEXT, E/flutter ( 8969): created_at TEXT, E/flutter ( 8969): )) sql 'CREATE TABLE notes ( E/flutter ( 8969): id TEXT PRIMARY KEY, E/flutter ( 8969): title TEXT, E/flutter ( 8969): note TEXT, E/flutter ( 8969): iSPinned INTEGER, E/flutter ( 8969): updated_at TEXT, E/flutter ( 8969): created_at TEXT, E/flutter ( 8969): )' args [] E/flutter ( 8969): #0 wrapDatabaseException E/flutter ( 8969): <asynchronous suspension> E/flutter ( 8969): #1 SqfliteDatabaseMixin.txnSynchronized E/flutter ( 8969): <asynchronous suspension> E/flutter ( 8969):bisa diliat ya itu ditulis syntax error in “CREATE TABLE notes dari sini kita bisa tau kalau pas nge create table, syntax/query nya salah jadinya table nya gk ke create.
makanya pas get data note nya
kamu dapat error no such table: notessetelah di cek, itu query create table kamu kebanyakan , (koma) ya.
seharusnya seperti ini
`static Future<Database> Init() async {
final dpPath = await getDatabasesPath();
return openDatabase(join(dpPath, ‘notes.db’), version: 1, onCreate: (newDb, version) {
newDb.execute(”’CREATE TABLE $TABLE_NOTES (
$TABLE_NOTES_ID TEXT PRIMARY KEY,
$TABLE_NOTES_TITLE TEXT,
$TABLE_NOTES_NOTE TEXT,
$TABLE_NOTES_ISPINNED INTEGER,
$TABLE_NOTES_UPDATEDAT TEXT,
$TABLE_NOTES_CREATEDAT TEXT //koma dibagian sini dihapus. karena kolom terakhir dari query create table tidak perlu menambahkan ,
)”’);
});
}`October 21, 2022 at 4:23 PM #170517hallo coach, setelah saya coba hasilnya masih sama itu coach.
October 21, 2022 at 4:24 PM #170518October 29, 2022 at 3:27 PM #170786AnonymousHallo, jangan lupa untuk di uninstall dulu ya apk sebelumnya.
October 29, 2022 at 3:31 PM #170788AnonymousKarna seperti yang dijelaskan sebelumnya, function oncreate pada db nya hanya di jalanin saat db nya pertama x dibuat, dan karena DB nya sudah ada dan function oncreate pernah dijalankan, makanya function oncreate nya tidak dijalankan lagi. sehingga walaupun sudah di fix query create table nya, tableny tetap gk kebuat karena gk dijalankan oleh aplikasinya.
November 3, 2022 at 4:42 AM #170970solved coach, terima kasih
January 30, 2023 at 12:23 PM #191821AnonymousOke sama sama
-
AuthorPosts
- You must be logged in to reply to this topic.