上一篇文章提到的刪除資料方法是直接指定要刪除第幾筆資料,但資料很多時如何去計算要刪除資料的位置(索引編號)?
有很多方法可以處理這個問題,這裡只寫出最簡單的方法,就是用搜尋法
以下是用來測試的MySQL資料庫,如畫面所顯示共有3筆資料,這裡要直接刪除欄位ts_name名稱裡有"阿兩"的那一筆資料
沿用上一篇的程式
把ADO Recordset Move.vi用ADO Recordset Find.vi取代
搜尋的語法是:欄位名稱='要搜尋的字串'
在這裡就是:ts_name='阿兩',要注意要搜尋的字串前後必需加上單引號
這個方法有個問題?那就是若資料庫內沒有那筆資料時程式會出現錯誤訊息,因為不能刪除不存在的資料
那要如何避開這個問題?在ADO Recordset Find.vi後面再串連ADO Recordset EOF.vi搭配Case Structure,搜尋不到資料時就不執行刪除動作
ADO Recordset Find.vi用來搜尋並指定特定欄位的資料位置,要注意搜尋的字串大小寫是視為不同的資料
ADO Recordset EOF.vi的用途是偵測指定的資料位置是否為資料庫的最後一筆資料之外,在這裡是偵測是否已搜尋到所有資料的最後面
在這裡還有一個問題?若你下載的是目前最新LabSQL-1.1a.zip這一版本,那可能找不到ADO Recordset Find.vi這個程式
幸好LabSQL的程式碼是完全公開的,可以用Invoke Node元件取代ADO Recordset Find.vi,Invoke Node元件在連線後選擇Find那一項即可