學生資訊管理系統之模組的理解

2021-06-08 17:01:21 字數 2229 閱讀 5761

'傳遞引數sql傳遞查詢語句,msgstring傳遞查詢資訊。自身以乙個資料集物件的形式返回

public function executesql(byval sql as string, msgstring as string) as adodb.recordset

dim cnn as adodb.connection '定義連線

dim rst as adodb.recordset

dim stokens() as string '定義字串

on error goto executesql_error '異常處理

stokens = split(sql)  '用split函式產生乙個包含各個子串的陣列

set cnn = new adodb.connection '建立連線

cnn.open connectstring

if instr("insert,delete,update", ucase$(stokens(0))) then '判斷字串中是否含有指定內容

cnn.execute sql '執行查詢語句

msgstring = stokens(0) & "query successful" '返回查詢資訊

else

set rst = new adodb.recordset '闖將資料集物件

rst.open trim$(sql), cnn, adopenkeyset, adlockoptimistic '返回查詢結果

set executesql = rst '返回記錄集物件

msgstring = "查詢到" & rst.recordcount & " 條記錄"

end if

executesql_exit:

set rst = nothing '清空資料集物件

set cnn = nothing '中斷連線

exit function

executesql_error: '判斷錯誤型別

msgstring = "查詢錯誤:" & err.description

msgbox msgstring

resume executesql_exit 

上面是模組中executesql函式的定義過程,它的目的就是執行sql語句。那它是怎樣的邏輯呢?

首先它運用了乙個split函式,在msdn中查詢它的意思就是返回一組下標為0的陣列。

看乙個例子:

寫一句sql語句:"select * from student_info"

執行stokens=split(sql)

stokens(0)="select"

stokens(1)="*"

stokens(2)="from"

stokens(3)="student_info"

這樣就把乙個查詢語句拆分成了乙個陣列

然後看instr("insert,delete,update", ucase$(stokens(0)))這句話,instr函式在msdn中的解釋:

instr([start, ]string1, string2[, compare]),下標從1開始

返回指定一字串在另一字串中最先出現的位置。在字串string1中,從start開始找string2,省略start時     從string1頭開始找。找不到時,函式值為0。

因為sql語句中最常用的就是 select,insert,delete,update,所以這句話的意思就是在"insert,delete,update"中查詢sql語句開頭的單詞,如果能夠找到就執行下邊的語句,如果找不到就執行else中的語句。

大家肯定會疑惑為什麼紅色字部分沒有select,原因是現在這個語句的功能是單純地判斷是不是select語句,如果是就執行else。

最後看executesql_exit: 

set rst = nothing '清空資料集物件

set cnn = nothing '中斷連線

exit function

這是典型的單個退出點。當執行正確的時候就直接退出了exit function,如果出錯了才執行錯誤處理語句。單個退出點的作用就是確保出錯時才執行錯誤處理語句。

說說遇到的問題:昨天上午和佳翰討論時,他的**部分"insert,delete,update"都用的小寫,但是後邊缺家了ucase,我們在除錯delete語句的時候怎麼也不執行else之前的語句,後來找了煥月師姐她說轉換成大寫肯定找不到從前邊找到delete,所以就不執行。

學生資訊管理系統 系統模組

系統模組主要分為三個小模組 1 新增使用者 2 修改密碼 3 推出登陸 其中知識點相對比較多的在新增使用者窗體中 1 新增使用者模組的主要功能就是為資料庫新增新的使用者 a 判斷文字框中是否為空 b 若不為空,判斷輸入的使用者名稱是否在資料庫中已經存在 起初對於這句話並不是很理解,在查詢之後發現其實...

學生資訊管理系統之

習學生資訊管理系統的時候,對於資訊的修改很多時候都用到了 書籤的功能 mybookmark 對刪除記錄顯示記錄起到了承上啟下的巨大作用。所以說書籤最懂你的心。書籤顧名思義就是做標記,讓我們更好的控制使用資料表,通過書籤我們可以隨意的跳到我們想要看的記錄下 前提是你的給你的目的記錄標記書籤 此外書籤還...

學生資訊管理系統

學生資訊管理系統,顧名思義就是為了管理學生的相關資訊做的一款軟體。雖然這次有原始碼供我們參考,但是從中我學習到了如何從開始到完工去做一款軟體,下邊我從做一項軟體專案的前後順序來總結我的學生資訊管理系統。一,分析需求 首先在做這款軟體是,我們先想象乙個成品,他的功能有哪些,每個功能完成哪項任務,這就是...