作者s66449 (老實樣)
看板Visual_Basic
標題[VB6 ] Recordset.EOF
時間Tue Aug 7 11:52:53 2012
Public Function FndSQL(rssql As ADODB.Recordset, rsCNN As ADODB.Connection,
sqltext As String) As Boolean
'SQL指令
'依SQL語法搜尋TABLE
'為尋找資料,TABLE 不須要作 LOCK
'MsgBox sqltext
FndSQL = False
On Error GoTo gonext:
Set rssql = New ADODB.Recordset
rssql.Open sqltext, rsCNN, adOpenKeyset, , adCmdText
If Not rssql.EOF Then FndSQL = True
gonext:
End Function
當我輸入的SQL是有資料的時候 EOF是false
反之找不到是true 為什麼是這樣的布林值啊??
據我對EOF的了解
rs.BOF
-----------------------------
第1筆
第2筆
第5筆
....
最後一筆
-------------------------------
rs.EOF
是當我有資料的時候 是移到"最後一筆"
而不是"rs.EOF" 所以才會false
而沒資料的時候
rs.BOF
-----------------------------
-------------------------------
rs.EOF
就移到"rs.EOF" 所以才是true
不曉得我這樣的觀念對不對??
另外註解那邊
'依SQL語法搜尋TABLE
'為尋找資料,TABLE 不須要作 LOCK
提到TABLE和LOCK
這是在講甚麼觀念呢??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.249.182.19
1F:推 ClubT:如果沒資料.EOF是True 如果有資料移到最後一筆在下MoveNext 08/07 12:00
2F:→ ClubT:.EOF也會是True 其他情況就是False 08/07 12:01
3F:推 fumizuki:EOF = True 表示 不可向下移動 BOF則表示不可向上移動 08/07 13:02
4F:→ fumizuki:一開始就eof就相當於沒有資料 08/07 13:02
5F:→ fumizuki:lock的類型是在rs.open 的其中一個參數中決定 08/07 13:04
6F:→ fumizuki:只有在新增修改刪除的時候才需要考慮lock的問題 08/07 13:05
7F:→ MOONRAKER:他是一個虛擬檔案,用EOF不EOF判斷資料之有無 08/07 14:53
8F:→ MOONRAKER:那行純粹就是有沒有傳回資料,不要把他當成普通檔案。 08/07 14:53
9F:→ MOONRAKER:lock是說我要更新某表時把他鎖(lock)住 08/07 14:54
10F:→ MOONRAKER:鎖上時只有我能更新,避免別人同時更新,做完再打開 08/07 14:55
11F:→ s66449:謝謝!! 08/07 17:39