易語言調(diào)用MS SQL SERVER數(shù)據(jù)庫方法
Microsoft SQL SERVER 數(shù)據(jù)庫存儲過程,根據(jù)其輸入輸出數(shù)據(jù),籠統(tǒng)的可以分為以下幾種情況或其組合:無輸入,有一個或多個輸入?yún)?shù),無輸出,直接返回(return)一個值,通過output參數(shù)返回一個或多個值,返回一個記錄集(recordset)。無論哪一種情況,無論輸入輸出參數(shù)多復(fù)雜的存儲過程,都可以在易語言中正確調(diào)用,準確的傳入?yún)?shù),并獲取正確的輸出數(shù)據(jù)。下面我(liigo)分多種情況介紹在易語言中調(diào)用MS SQL SERVER數(shù)據(jù)庫存儲過程的詳細方法,使用數(shù)據(jù)庫操作支持庫(eDatabase.fne)。此前多有人說易語言無法調(diào)用數(shù)據(jù)庫存儲過程,或咨詢調(diào)用存儲過程的方法,因成此文。
一、調(diào)用“無輸入輸出數(shù)據(jù)”的存儲過程
這是最簡單的情況,執(zhí)行一個簡單的SQL語句就OK了,下面直接給出代碼:
view plaincopy to clipboardprint?
數(shù)據(jù)庫連接1.執(zhí)行SQL (“exec dbproc”)
其中,“數(shù)據(jù)庫連接1”是數(shù)據(jù)庫操作支持庫中“數(shù)據(jù)庫連接”控件的實例,"exec" 表示調(diào)用存儲過程,"dbproc"為被調(diào)用的存儲過程的名稱。即使存儲過程有返回值,在不想接收返回值的情況下,也可按這種方法調(diào)用。
二、調(diào)用“有一個或多個輸入?yún)?shù)”的存儲過程
一個輸入?yún)?shù)的情況(其中5為參數(shù)值,跟在存儲過程名稱之后,以空格分隔):
view plaincopy to clipboardprint?
數(shù)據(jù)庫連接1.執(zhí)行SQL (“exec dbproc_p1 5”)
兩個輸入?yún)?shù)的情況(其中3和6為參數(shù)值,之間以逗號分隔):
view plaincopy to clipboardprint?
數(shù)據(jù)庫連接1.執(zhí)行SQL (“exec dbproc_p2 3,6”)
三、調(diào)用“返回記錄集(recordset)”的存儲過程
存儲過程最后一條SQL語句為Select語句,通常將返回一個記錄集(recordset)給調(diào)用者。在易語言中,可通過數(shù)據(jù)庫操作支持庫中的“記錄集”控件接收該記錄集,具體代碼如下圖:
核心代碼就是中間淡黃底色加亮的那一行(記錄集1.打開),這行代碼執(zhí)行成功后,記錄集1內(nèi)容就是存儲過程返回的recordset內(nèi)容,通過一個簡單的循環(huán)語句可以遍歷所有記錄。實際使用中,應(yīng)檢查“記錄集1.打開”調(diào)用是否成功,上圖為簡化起見省略之。
下文更復(fù)雜的情況,也是用大概相同的代碼,僅中間淡黃底色加亮的那一行有所變化。
四、調(diào)用“返回記錄集(recordset)且有一個或多個輸入?yún)?shù)”的存儲過程
代碼與前面大致相同,只是調(diào)整了中間一行調(diào)用存儲過程的SQL語句的寫法,前面都有涉及,無需多言: