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