解讀VB實(shí)現(xiàn)SQL Server 2000存儲(chǔ)過程調(diào)用(2)_Mssql數(shù)據(jù)庫(kù)教程
推薦:客戶端備份與恢復(fù)MSSQL Server數(shù)據(jù)庫(kù)摘要:本文以SQL SERVER為例,總結(jié)了常用的幾種備份和恢復(fù)數(shù)據(jù)庫(kù)的方法,分析了作業(yè)機(jī)制的原理,并提出了一種以作業(yè)機(jī)制實(shí)現(xiàn)恢復(fù)和備份數(shù)據(jù)庫(kù)的方法。用戶可以不打開數(shù)據(jù)庫(kù)管理器,在應(yīng)用程序客戶端就可以方便地實(shí)現(xiàn)數(shù)據(jù)庫(kù)的備份和恢復(fù)。 關(guān)鍵詞: 備份 恢復(fù) 作
SQL Server 2000數(shù)據(jù)庫(kù)存儲(chǔ)過程的調(diào)用
VB作為當(dāng)今應(yīng)用極為普遍的數(shù)據(jù)庫(kù)客戶端開發(fā)工具之一,對(duì)客戶端應(yīng)用程序調(diào)用服務(wù)器端存儲(chǔ)過程提供了強(qiáng)大的支持。特別是隨著VB6.0的推出,VB客戶端應(yīng)用程序可以方便地利用ADO的對(duì)象和集合來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)存儲(chǔ)過程的調(diào)用。
在筆者編寫的科技檔案管理系統(tǒng)中,就是采用VB作為開發(fā)平臺(tái),采用SQL Server2000數(shù)據(jù)庫(kù)管理數(shù)據(jù),在這個(gè)科技檔案管理系統(tǒng)中有海量的數(shù)據(jù),并且對(duì)數(shù)據(jù)庫(kù)有頻繁的訪問,利用存儲(chǔ)過程訪問數(shù)據(jù)庫(kù)節(jié)省了執(zhí)行時(shí)間,大大提高了系統(tǒng)的性能。
1、ADO簡(jiǎn)介
ADO控件(也稱為ADO Data控件)與VB固有的Data控件相似。使用ADO Data控件,可以利用Microsoft ActiveX Data Objects(ADO)快速建立數(shù)據(jù)庫(kù)綁定控件和數(shù)據(jù)提供者之間的連接。
ADO Data控件可以實(shí)現(xiàn)以下功能:
·連接一個(gè)本地?cái)?shù)據(jù)庫(kù)或遠(yuǎn)程數(shù)據(jù)庫(kù)。
·打開一個(gè)指定的數(shù)據(jù)庫(kù)表,或定義一個(gè)基于結(jié)構(gòu)化查詢語言(SQL)的查詢、存儲(chǔ)過程或該數(shù)據(jù)庫(kù)中的表的視圖的記錄集合。
·將數(shù)據(jù)字段的數(shù)值傳遞給數(shù)據(jù)綁定控件,可以在這些控件中顯示或更改這些數(shù)值。
·添加新的記錄,或根據(jù)更改顯示在綁定的控件中的數(shù)據(jù)來更新一個(gè)數(shù)據(jù)庫(kù)。
2、數(shù)據(jù)庫(kù)的連接
數(shù)據(jù)庫(kù)的連接可通過ADO控件實(shí)現(xiàn),為此,必須在工程部件中選擇Microsoft ADO Data Control 6.0 (OLEDB),然后在窗體中添加ADO控件。利用ADO連接數(shù)據(jù)庫(kù)有兩種方法,具體如下。
1) 通過ADODC屬性頁(yè)實(shí)現(xiàn)連接
在ADODC屬性頁(yè)中選擇生成按鈕,進(jìn)入數(shù)據(jù)鏈接屬性對(duì)話框;然后選擇該對(duì)話框中的連接屬性頁(yè),選擇或輸入服務(wù)器名稱和數(shù)據(jù)庫(kù)等重要信息;最后測(cè)試連接,連接成功后,按確定按鈕,返回到屬性頁(yè)對(duì)話框,可獲得連接字符串,如下例:
Provider=SQLOLEDB.1;
Persist Security Info=False;
User ID=sa;Initial Catalog=Science_File;
Data Source=Data_Server
其中sa是用戶名;Science_File是數(shù)據(jù)庫(kù)名;Data_Server是數(shù)據(jù)庫(kù)名。
通過下列語句,即可連接到指定的數(shù)據(jù)庫(kù):
dim odbcstr as String, adocon As New ADODB.Connection
odbcstr = "Provider=SQLOLEDB.1;
Persist Security Info=False;
User ID=sa;Initial Catalog=Science_File;
Data Source=Data_Server"
adocon.Open odbcstr '連接到數(shù)據(jù)庫(kù)
2) 直接使用連接語句實(shí)現(xiàn)
連接數(shù)據(jù)庫(kù)的語句如下:
Dim ado as ADODC
ado.ConnectionString = "Provider=SQLOLEDB.1;
Password=" & User_Pwd & ";
Persist Security Info=True;
User ID=" & User_Name & ";
Initial Catalog=" & Data_Name & ";
Data Source=" & server_name
其中User-Pwd是用戶密碼;User_Name是用戶名;Data_Name是數(shù)據(jù)庫(kù)名;server_name是服務(wù)器名。連接數(shù)據(jù)庫(kù)成功后就可以調(diào)用存儲(chǔ)過程執(zhí)行操作。
3、存儲(chǔ)過程的調(diào)用
假設(shè)有一個(gè)名為doc_ProcName存儲(chǔ)過程,該存儲(chǔ)過程有一個(gè)輸入?yún)?shù),一個(gè)輸出參數(shù)。
1) 直接傳遞參數(shù)調(diào)用存儲(chǔ)過程
直接傳遞參數(shù)方法主要通過以下幾個(gè)步驟來實(shí)現(xiàn):
(1) 通過ADODB的Connection對(duì)象打開與數(shù)據(jù)源的連接;
(2) 通過ActiveConnection指定Command對(duì)象當(dāng)前所屬的Connection對(duì)象;
(3) 通過CommandText屬性設(shè)置Command對(duì)象的源,即要調(diào)用的存儲(chǔ)過程;
(4) 通過CommandType屬性確定Command對(duì)象的源類型,如果源類型為存儲(chǔ)過程CommandType即為adCmdStoredProc;
(5) 通過Command對(duì)象的Parameters集合向所調(diào)用的存儲(chǔ)過程傳遞參數(shù),其中對(duì)象Parameters(0)為執(zhí)行存儲(chǔ)過程的返回值,返回值為0則執(zhí)行存儲(chǔ)過程成功;
(6) 通過Eexecute方法執(zhí)行在 CommandText 屬性中指定的存儲(chǔ)過程。
以存儲(chǔ)過程doc_ProcName為例,關(guān)鍵代碼如下:
Dim strS As String '定義一變量
Dim adoconn As New ADODB.Connection 'Connection 對(duì)象代表了打開與數(shù)據(jù)源的連接。
Dim adocomm As New ADODB.Command 'Command 對(duì)象定義了將對(duì)數(shù)據(jù)源執(zhí)行的指定命令。
Dim ReturnValue As Integer '調(diào)用存儲(chǔ)過程的返回值
adoconn.ConnectionString = Adodc1.ConnectionString 'Adodc1為窗體中的ADO控件,
并已成功連接數(shù)據(jù)庫(kù)
adoconn.Open
Set adocomm.ActiveConnection = adoconn '指示指定的 Command對(duì)象當(dāng)前所屬的
Connection對(duì)象。
adocomm.CommandText = "doc_ProcName" '設(shè)置Command對(duì)象源。
adocomm.CommandType = adCmdStoredProc '通知提供者CommandText屬性有什么,
它可能包括Command對(duì)象的源類型。設(shè)置這個(gè)屬性優(yōu)化了該命令的執(zhí)行。
adocomm.Parameters(1) = "1"
adocomm.Parameters(2) = "OutputParameters" 'OutputParameters可以為任意的字符串或數(shù)字
adocomm.Execute
ReturnValue = adocomm.Parameters(0) '存儲(chǔ)過程的返回值,返回0則成功執(zhí)行。
strS = adocomm.Parameters(2) '把存儲(chǔ)過程的輸出參數(shù)的值賦給變量strS
2) 追加參數(shù)法調(diào)用存儲(chǔ)過程
追加參數(shù)通過CreateParameter方法,用來指定屬性創(chuàng)建新的Parameter對(duì)象。具體語法如下:
Set parameter = command.CreateParameter
(Name, Type, Direction, Size, Value)
·Name 可選,字符串,代表 Parameter 對(duì)象名稱。
·Type 可選,長(zhǎng)整型值,指定 Parameter 對(duì)象數(shù)據(jù)類型。
·Direction 可選,長(zhǎng)整型值,指定 Parameter 對(duì)象類型。
·Size 可選,長(zhǎng)整型值,指定參數(shù)值最大長(zhǎng)度(以字符或字節(jié)數(shù)為單位)。
·Value 可選,變體型,指定 Parameter 對(duì)象值。
這種方法與上面一種方法的分別主要在于,追加參數(shù)的方法在向存儲(chǔ)過程傳遞參數(shù)時(shí),這種方法首先通過CreateParameter方法為存儲(chǔ)過程創(chuàng)建參數(shù),然后通過Append方法將創(chuàng)建的參數(shù)追加到Parameters集合中去。
仍然以存儲(chǔ)過程doc_ProcName的調(diào)用為例,關(guān)鍵代碼如下:
Dim mRst As ADODB.Recordset 'Recordset 對(duì)象表示的是來自基本表
或命令執(zhí)行結(jié)果的記錄全集。
Dim prm As ADODB.Parameter 'Parameter 對(duì)象代表參數(shù)或與
基于參數(shù)化查詢或存儲(chǔ)過程的Command 對(duì)象相關(guān)聯(lián)的參數(shù)。
adoconn.ConnectionString = Adodc1.ConnectionString
adoconn.Open
Set adocomm.ActiveConnection = adoconn
adocomm.CommandText = "doc_ProcName"
adocomm.CommandType = adCmdStoredProc
Set prm = adocomm.CreateParameter
("parameter1", adTinyInt, adParamInput, , "1")
adocomm.Parameters.Append prm
Set prm = adocomm.CreateParameter("parameter2", adInteger, adParamOutput)
adocomm.Parameters.Append prm
Set mRst = adocomm.Execute
ReturnValue = adocomm.Parameters(0)
以上代碼中未定義的變量以及未注釋的語句與前述相同。
結(jié)束語
在應(yīng)用程序中調(diào)用服務(wù)器端存儲(chǔ)過程,不僅能顯著提高整個(gè)應(yīng)用的性能,而且能加強(qiáng)對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的保護(hù)。VB為客戶端應(yīng)用程序調(diào)用存儲(chǔ)過程提供了一組方便而有效的方法。
分享:談SQL Server的空值處理策略數(shù)據(jù)完整性是任何數(shù)據(jù)庫(kù)系統(tǒng)要保證的重點(diǎn)。不管系統(tǒng)計(jì)劃得有多好,空數(shù)據(jù)值的問題總是存在。本文探討了在SQL Server中處理這些值時(shí)涉及的3個(gè)問題:計(jì)數(shù)、使用空表值以及外鍵處理。 用COUNT(*)處理空值 大多數(shù)集合函數(shù)都能在計(jì)算時(shí)消除空值;COUNT函數(shù)則屬于例
- sql 語句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個(gè)方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數(shù)據(jù)庫(kù),提示 無法為該請(qǐng)求檢索數(shù)據(jù) 錯(cuò)誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲(chǔ)過程參數(shù)的用法實(shí)例詳解
Mssql數(shù)據(jù)庫(kù)教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫(kù)教程推薦
- 安裝sqlserver2000時(shí)出現(xiàn)wowexec.exe無反應(yīng)的解決方法
- SQL Server2005打開數(shù)據(jù)表中的XML內(nèi)容時(shí)報(bào)錯(cuò)的解決辦法
- Server2005中更改sa的用戶名的多種方法
- 關(guān)于避免在 PL/SQL 中使用嵌套游標(biāo)查詢
- SQL普通表轉(zhuǎn)分區(qū)表的方法
- 怎樣巧妙規(guī)劃使用Oracle數(shù)據(jù)空間
- 是什么讓SQL Server加速運(yùn)行
- 實(shí)例演示left join/right join/inner join
- SqlServer2005 數(shù)據(jù)庫(kù)同步配置圖文詳解
- 解讀改善SQL Server內(nèi)存管理的問題
猜你也喜歡看這些
- 相關(guān)鏈接:
復(fù)制本頁(yè)鏈接| 搜索解讀VB實(shí)現(xiàn)SQL Server 2000存儲(chǔ)過程調(diào)用(2)
- 教程說明:
Mssql數(shù)據(jù)庫(kù)教程-解讀VB實(shí)現(xiàn)SQL Server 2000存儲(chǔ)過程調(diào)用(2)
。