請問高手,我在recordset nothing狀態時,刪除一筆data,看似已刪除,但在查詢後,仍存在,若下updatebetch,同上,但前面加上 Set rs.ActiveConnection=cn(連接recordset),但會刪除第一筆,請問要如何撰寫?
不好意思,"但前面加上 Set rs.ActiveConnection=cn(連接recordset),但會刪除第一筆"這一句我不是很懂,是說可以刪還是不能刪呢?會刪表示可以做到,也就應該不會有問題,但不能刪看語意又不像... 我的做法是recordset.activeconnection=nothing時,用recordset的delete刪給使用者看,然後run sql將資料庫中的資料刪掉
大漢堡,對不起,由於敘述不清楚,造成你的困擾,我想換個方式請教: (1)是否在rs.activeconnection=nothing時,下rs.delete,資料庫不會做刪除動 作,除非如你所說,另外再下rs.activeconnection=cn, run sql刪除,or在rs open狀態下rs.delete,才可刪除資料庫的data? (2)若使用上述的第二種方式, 假設要刪除查詢出來的第三筆(停在畫面),是否會因為重新open recordset,而將指標指向第一筆而刪除第一資料? 麻煩您了!!!
activeconnection為nothing時表示recordset已經離線了,那不管對recordset做什麼處理都不會影響到資料庫,至於未設定nothing時,還要參考你adodc的LockType而定. run sql我是用ado的connection來做,跟rs的activeconnection無關,另外reopen recordset和這整個問題應該是無關的,以你舉例的狀況來說:adodc的recordset.activeconnection為nothing,若要刪除資料,以我的方式是run sql來刪除資料庫中的資料,再用adodc1.recordset.delete來刪除畫面上使用者看的資料.也就是離線後,將rs及database視為兩個獨立的個體,分別處理各自的刪除