no such table: table_name sqlite error on Objective C

สวัสดีครับ วันนี้มาเจอกับปัญหาที่อาจจะยากที่จะพบเจอกันซักหน่อยใน Objective C เมื่อมีการใช้งาน sqlite ปัญหานั่นก็คือ no such table: table_name

จริงๆก่อนหน้านี้ผมก็ใช้งานได้ปกตินะครับสำหรับ database ก้อนนี้ แต่บังเอิญซนไปหน่อย เผลอไปลบ app ออกจาก Simulator หลังจากนั้นก็เอ๋อเลยครับ เจอ error นี้ตลอด ผมลองสร้าง database ก้อนใหม่ table ใหม่ แล้วเรียกใช้งานก็ยังไม่ได้ผล เคลียร์ app ลบ app ก็แล้วครับ ยังคงได้ผลลัพธ์เช่นเดิม แต่หลังจากค้นหาข้อมูลอยู่พักใหญ่ๆก็ถึงบางอ้อจนได้

เว็บนี้ครับ http://www.iphonedevsdk.com/forum/iphone-sdk-development/8967-could-not-prepare-statemnt-no-such-table-test-sqlite.html ซึ่งเค้าบอกว่า ให้เปลี่ยนการเรียกใช้งาน path ใหม่ซะ ให้ไปเรียกจากใน project ให้ถูกต้อง ไม่ใช่เรียกจาก document พูดไปอาจจะงงลองดูตัวอย่างครับ

เชื่อว่าเพื่อนๆหลายๆคนที่เข้ามาเจอบทความนี้น่าจะทำการเรียก path ในลักษณะนี้ครับ

NSString *path = [documentsDirectory stringByAppendingPathComponent:@"database_name.sqlite"]

ให้เปลี่ยนมาเรียกแบบนี้แทน

NSString *path = [[NSBundle mainBundle]pathForResource:@"database_name"ofType:@"sqlite"];

ถ้ามีปัญหาสงสัยยังไงสามารถโพสถามได้นะครับ หรือ mail มาก็ยินดีครับ [aspgod.com@gmail.com]

หวังว่าบทความนี้จะสามารถแก้ปัญหาของเพื่อนๆได้นะครับ

Credit : http://www.iphonedevsdk.com/forum/iphone-sdk-development/8967-could-not-prepare-statemnt-no-such-table-test-sqlite.html