
Database.deleteProduct מקבלת Product, ונדרש ממנו רק ה-id.String.format: delete from products where id = %d, עם product.getId().where נמחק רק המוצר שעונה על התנאי.getWritableDatabase(), execSQL, וסגירת החיבור, כמו בהוספה ובעדכון.deleteProduct, שמתבצעת כשהמשתמש לוחץ על אייקון המחיקה, מוצג AlertDialog עם פרטי המוצר. רק אחרי שהמשתמש אישר ב-yes, מביאים את המוצר לפי המיקום עם products.get(position), מוחקים אותו מהמסד, ואז מהרשימה המקומית.Toast שנוסף קודם לבדיקה הוסר.id.הטקסט המלא של הדקות הראשונות בהרצאה «חיבור למסד נתונים SQLite - חלק 6» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
הדבר הבא שאנחנו הולכים לראות זה delete, איך אנחנו יכולים למחוק מוצר מהדאטאבייס. אז אנחנו חוזרים למחלקה דאטאבייס שבנינו ואחרי הפונקציה add ו-update אנחנו רוצים לבנות פונקציית void delete product.
גם כאן הפונקציה מקבלת product למחיקה וכמובן שאנחנו צריכים להשתמש רק עם ה-ID שלו. אז אנחנו רוצים ליצור לעצמנו string sql, סטרינג נקודה פורמט כמו מקודם ואנחנו רוצים את פקודת הדיליט הבאה delete from products where it שווה אחוז d כאן אנחנו רוצים לתת את product.getid פקודת הדיליט אומרת בוא
תמחק רק מהטבלה הפרודקט רק את המוצר שזה ה-id שלו אם לא היינו שמים את אזור ה-where אז הפקודה הזאת הייתה מנסה למחוק את כל הרשומות, את כל המוצרים.
ברגע שאנחנו מגדירים Where הוא מחפש רק את התנאי שקיים כאן, רק את המוצר שעונה על התנאי הזה ורק אותו מוחק. הדבר הבא שאנחנו עושים, ושוב את שלושת הפקודות האלה למעשה, זה יהיה writable database, זה הוצאה לפועל של הפקודה וסגירת ה-Connection ואנחנו רוצים לקרוא לפונקציה delete
product. אנחנו חוזרים ל-Main Activity ובואו נחפש איפה בדיוק היוזר רוצה לבצע את המחיקה וזה בעצם נמצא כאן. delete product זאת הפונקציה שמתבצעת כשהיוזר לוחץ על האייקון של המחיקה.
פה אנחנו מציגים לו את ה-Alert Dialog עם כל הנתונים ורק אם הוא מאשר בתוך האלרט על ידי זה שהוא לוחץ על yes אז מה שקיים כאן זה מחיקה מהקולקשן המקומי אבל לפני אנחנו רוצים לגשת לדאטאבייס ולמחוק את המוצר מהדאטאבייס.
זאת אומרת שאנחנו צריכים עכשיו להביא את המוצר