VB中訪問存儲過程的幾種辦法.doc_第1頁
VB中訪問存儲過程的幾種辦法.doc_第2頁
VB中訪問存儲過程的幾種辦法.doc_第3頁
VB中訪問存儲過程的幾種辦法.doc_第4頁
VB中訪問存儲過程的幾種辦法.doc_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

VB中訪問存儲過程的幾種辦法 使用SQL存儲過程有什么好處SQL存儲過程執行起來比SQL命令文本快得多。當一個SQL語句包含在存儲過程中時,服務器不必每次執行它時都要分析和編譯它。調用存儲過程,可以認為是一個三層結構。這使你的程序易于維護。如果程序需要做某些改動,你只要改動存儲過程即可你可以在存儲過程中利用Transact-SQL的強大功能。一個SQL存儲過程可以包含多個SQL語句。你可以使用變量和條件。這意味著你可以用存儲過程建立非常復雜的查詢,以非常復雜的方式更新數據庫。最后,這也許是最重要的,在存儲過程中可以使用參數。你可以傳送和返回參數。你還可以得到一個返回值(從SQL RETURN語句)。環境:WinXP+VB6+sp6+SqlServer2000 數據庫:test表:Users CREATE TABLE dbo.users ( id int IDENTITY (1, 1) NOT NULL , truename char (10) COLLATE Chinese_PRC_CI_AS NULL , regname char (10) COLLATE Chinese_PRC_CI_AS NULL , pwd char (10) COLLATE Chinese_PRC_CI_AS NULL , sex char (10) COLLATE Chinese_PRC_CI_AS NULL , email text COLLATE Chinese_PRC_CI_AS NULL , jifen decimal(18, 2) NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARYGO ALTER TABLE dbo.users WITH NOCHECK ADD CONSTRAINT PK_users PRIMARY KEY CLUSTERED ( id ) ON PRIMARY GO 存儲過程select_usersCREATE PROCEDURE select_users regname char(20), numrows int OUTPUTAS Select * from users SELECT numrows = ROWCOUNT if numrows = 0 return 0 else return 1GO 存儲過程insert_usersCREATE PROCEDURE insert_users truename char(20), regname char(20),pwd char(20),sex char(20),email char(20),jifen decimal(19,2)ASinsert into users(truename,regname,pwd,sex,email,jifen) values(truename,regname,pwd,sex,email,jifen)GO 在VB環境中,添加DataGrid控件,4個按鈕,6個文本框代碼簡單易懂。 引用microsoft active data object 2.X libraryOption ExplicitDim mConn As ADODB.ConnectionDim rs1 As ADODB.RecordsetDim rs2 As ADODB.RecordsetDim rs3 As ADODB.RecordsetDim rs4 As ADODB.Recordset Dim cmd As ADODB.CommandDim param As ADODB.Parameter 這里用第一種方法使用存儲過程添加數據Private Sub Command1_Click() Set cmd = New ADODB.Command Set rs1 = New ADODB.Recordset cmd.ActiveConnection = mConn cmd.CommandText = insert_users cmd.CommandType = adCmdStoredProc Set param = cmd.CreateParameter(truename, adChar, adParamInput, 20, Trim(txttruename.Text) cmd.Parameters.Append param Set param = cmd.CreateParameter(regname, adChar, adParamInput, 20, Trim(txtregname.Text) cmd.Parameters.Append param Set param = cmd.CreateParameter(pwd, adChar, adParamInput, 20, Trim(txtpwd.Text) cmd.Parameters.Append param Set param = cmd.CreateParameter(sex, adChar, adParamInput, 20, Trim(txtsex.Text) cmd.Parameters.Append param Set param = cmd.CreateParameter(email, adChar, adParamInput, 20, Trim(txtemail.Text)cmd.Parameters.Append param下面的類型需要注意,如果不使用adSingle,會發生一個精度無效的錯誤 Set param = cmd.CreateParameter(jifen, adSingle, adParamInput, 50, Val(txtjifen.Text) cmd.Parameters.Append param Set rs1 = cmd.Execute Set cmd = Nothing Set rs1 = Nothing End Sub 這里用第二種方法使用存儲過程添加數據Private Sub Command2_Click() Set rs2 = New ADODB.Recordset Set cmd = New ADODB.Command cmd.ActiveConnection = mConn cmd.CommandText = insert_users cmd.CommandType = adCmdStoredProc cmd.Parameters(truename) = Trim(txttruename.Text) cmd.Parameters(regname) = Trim(txtregname.Text) cmd.Parameters(pwd) = Trim(txtpwd.Text) cmd.Parameters(sex) = Trim(txtsex.Text) cmd.Parameters(email) = Trim(txtemail.Text) cmd.Parameters(jifen) = Val(txtjifen.Text) Set rs2 = cmd.Execute Set cmd = Nothing Set rs1 = NothingEnd Sub 這里用第三種方法使用連接對象來插入數據Private Sub Command4_Click() Dim strsql As String strsql = insert_users & Trim(txttruename.Text) & , & Trim(txtregname.Text) & , & Trim(txtpwd.Text) & , & Trim(txtsex.Text) & , & Trim(txtemail.Text) & , & Val(txtjifen.Text) & Set rs3 = New ADODB.Recordset Set rs3 = mConn.Execute(strsql) Set rs3 = NothingEnd Sub 利用存儲過程顯示數據要處理多種參數,輸入參數,輸出參數以及一個直接返回值 Private Sub Command3_Click() Set rs4 = New ADODB.Recordset Set cmd = New ADODB.Command cmd.ActiveConnection = mConn cmd.CommandText = select_users cmd.CommandType = adCmdStoredProc 返回值 Set param = cmd.CreateParameter(RetVal, adInteger, adParamReturnValue, 4) cmd.Parameters.Append param 輸入參數 Set param = cmd.CreateParameter(regname, adChar, adParamInput, 20, Trim(txtregname.Text) cmd.Parameters.Append param 輸出參數 Set param = cmd.CreateParameter(numrows, adInteger, adParamOutput) cmd.Parameters.Append param Set rs4 = cmd.Execute() If cmd.Parameters(RetVal).Value = 1 Then MsgBox cmd.Parameters(numrows).Value Else MsgBox 沒有記錄 End If MsgBox rs4.RecordCount Set DataGrid1.DataSource = rs4 DataGrid1.Refresh End Sub 連接數據庫Private Sub Form_Load() Set mConn = New Connection mConn.ConnectionString = Provider=SQLOLEDB.1;Pe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論