- 相關(guān)推薦
開發(fā)基于SQL SERVER 的C/S數(shù)據(jù)庫應(yīng)用系統(tǒng)?
吳俊峰
(合肥市經(jīng)濟信息中心計算機通信部)??
SQL Server 6.5作為面向中小型企業(yè)的網(wǎng)絡(luò)數(shù)據(jù)庫服務(wù)系統(tǒng),提供了 與眾多高級數(shù)據(jù)庫管理器相同的運行性能,向傳統(tǒng)的數(shù)據(jù)庫廠商發(fā)起了強有力的挑戰(zhàn)。在程 序設(shè)計方面:SQL Server 6.5采用了關(guān)鍵而新穎的對稱式結(jié)構(gòu),從而簡化了程序設(shè)計,并且 Microsoft在它的Visual Basic可視化編程語言中為程序員提供了良好的控件;在數(shù)據(jù)庫管 理方面:SQL Server 6.5以一種易于管理的方式處理多服務(wù)器事務(wù)管理,提供了一種把SQL Server系統(tǒng)擴展而超出單個計算機能力的方法。?
SQL Server 6.5主要具有以下幾個功能:?
全面的數(shù)據(jù)完整性保護,無論是復(fù)雜的事務(wù)支持和高級安全性,還是面向用戶的數(shù)據(jù)庫隱式 部分,以及數(shù)據(jù)完整性保護都適用;?
與Windows NT集成,允許在SMP(對稱多處理)系統(tǒng)中進行徹底的多線程和對稱多處理,并 且可集成到分布式管理環(huán)境中;?
在低造價平臺上也具有突出性能;?
為系統(tǒng)管理員提供一流的管理工具;?
對多處理器“分布式”事務(wù)的內(nèi)在支持。?
以下介紹一種怎樣利用Microsoft SQL Server 6.5在Windows NT Server上構(gòu)筑開發(fā)環(huán)境, 完成一般的客戶/服務(wù)器應(yīng)用系統(tǒng)。??
1. 在SQL SERVER 6.5上創(chuàng)建一個數(shù)據(jù)設(shè)備(在創(chuàng)建數(shù)據(jù)庫之前必須為該 數(shù)據(jù)庫創(chuàng)建一個存儲設(shè)備)??
(1) 從 Microsoft SQL Server 6.5 Utilties 程序組內(nèi)打開 SQL EM。?
(2) 在Server Manager 窗口里,選擇創(chuàng)建數(shù)據(jù)庫的服務(wù)器。如hfnm.。?
(3) 選擇Manage菜單項,然后選擇Database Device選項。出現(xiàn)Manage Database Device窗 口。?
(4) 選擇New Device 按鈕(第一個)。出現(xiàn)New Database Device窗口。?
(5) Name:為所要創(chuàng)建的設(shè)備名;Location:可以選擇創(chuàng)建設(shè)備的地點(如:c:\databas e);Size(MB):用于設(shè)定此設(shè)備的大小(一般為數(shù)據(jù)庫的1.25倍)。?
(6) 單擊 Create Now按鈕,創(chuàng)建此設(shè)備。?
注意:請在創(chuàng)建數(shù)據(jù)庫之前必須先創(chuàng)建兩個存儲設(shè)備,一個是數(shù)據(jù)庫的物理設(shè)備,另一個是數(shù)據(jù)庫 的邏輯設(shè)備。?
2. 在SQL SERVER 6.5上創(chuàng)建一個數(shù)據(jù)庫?
(1) 從 Microsoft SQL Server 6.5 Utilties 程序組內(nèi)打開 SQL EM。?
(2) 在Server Manager 窗口里,選擇創(chuàng)建數(shù)據(jù)庫的服務(wù)器。如hfnm.。?
(3) 選擇Manage菜單項,然后選擇Database 選項。出現(xiàn)Manage Database窗口。?
(4) 選擇New Database 按鈕(第一個)。出現(xiàn)New Database窗口。?
(5) Name項為數(shù)據(jù)庫名,Data Device 為數(shù)據(jù)庫物理設(shè)備名稱,Size是該物理設(shè)備 為數(shù)據(jù)庫分配的存儲空間(MB);Logic Device為數(shù)據(jù)庫邏輯設(shè)備名稱,Size是該邏輯設(shè)備 為數(shù)據(jù)庫分配的存儲空間(MB)。請不要復(fù)選Default Device選項。?
(6) 按Create Now按鈕,正式創(chuàng)建數(shù)據(jù)庫。?
3. 在已有的數(shù)據(jù)庫上創(chuàng)建數(shù)據(jù)表?
(1) 從 Microsoft SQL Server 6.5 Utilties 程序組內(nèi)打開 SQL EM
。?
(2) 在Server Manager 窗口里,選擇服務(wù)器。單擊所要創(chuàng)建數(shù)據(jù)表的數(shù)據(jù)庫旁的加號。再 單擊數(shù)據(jù)庫的Group/Users以及Objects組件。?
(3) 單擊Objects組件旁邊的加號。Server Manager 將展開Objects 項目,并顯示出可操作 的所有數(shù)據(jù)庫對象。?
(4) 選擇Table對象。然后單擊Manager 菜單項,并選擇Tables項目。將出現(xiàn)Manager Table (管理表格)窗口。
?(5) 現(xiàn)在保持Table組合框為<new>(如果在組合框選擇了其他表,那 么就可以修改它)。?
Column name:字段名Datatype:字段類型?
Size:字段長度Nulls:是否允許空值?
Default:默認(rèn)值?
(6) 按Save按鈕,保存表格。?
4. 為數(shù)據(jù)表創(chuàng)建主關(guān)鍵字?
(1) 啟動Microsoft SQL Server 6.5 EM ,選擇適當(dāng)?shù)姆⻊?wù)器以及數(shù)據(jù)庫。單擊數(shù)據(jù)庫 旁的加號,Server Manager會展開數(shù)據(jù)庫,并列出所有組件。?
(2) 單擊Objects項目旁邊的加號,Server Manager會列出可操作的數(shù)據(jù)庫對象。?
(3) 單擊Tables文件夾旁邊的加號。用右鍵點擊相應(yīng)的數(shù)據(jù)表對象,然后從彈出式菜單里選 擇Edit命令。隨后屏幕上會出現(xiàn)Manage Tables窗口。?
(4) 單擊工具欄上的Advanced Features (高級特性)按鈕。隨后會出現(xiàn)與表格有關(guān)的更詳細(xì) 的信息。?
(5) 在第一張卡片(Primary Key/Identity)里,可設(shè)置主關(guān)鍵字。單擊Primary Key窗框 里的Column Names(列名)組合框。會顯示出未設(shè)為Nulls的一系列列名。請選擇適當(dāng)?shù)牧校?使其成為主關(guān)鍵字。?
(6) 對于主關(guān)鍵字來說,索引類型應(yīng)定義為(non-clustered)。單擊Add按鈕,在表格里添 加主關(guān)鍵字信息。?
注意:?① 主關(guān)鍵字的定義對于一個數(shù)據(jù)表來說是非常重要的,如果沒有主關(guān)鍵字,那么這個數(shù)據(jù) 表將是只讀的。?
② 主關(guān)鍵字的定義必須在數(shù)據(jù)表保存之前,因為數(shù)據(jù)表在保存后,所增加的字段將不允許為非NULL型。?
5. 為表格創(chuàng)建群集索引?
(1) 啟動SQL EM,選擇相應(yīng)的數(shù)據(jù)庫。?
(2) 從Manage菜單里選擇Indexes選項。?
(3) 在Table組合框里,選擇適當(dāng)?shù)臄?shù)據(jù)表。在Index組合框里,選擇<new>,以便創(chuàng)建一個 新索引。在里面輸入新索引的名字。?
(4) 在Available Columns In Table (表格內(nèi)的可用列)列表內(nèi),選擇適當(dāng)?shù)牧胁聪翧dd按 鈕。這樣會將列名移至Columns In Index(Key)列表框。還可選擇多列。?
(5) 在Index Attribute (索引屬性)窗框內(nèi),選擇Clustered (群集)復(fù)選框。?
(6) 在Clustered旁邊的兩個單選鈕中,Allow duplicate rows 表示允許重復(fù)行。?
(7) 按Build按鈕,開始創(chuàng)建索引。?
6. 在SQL Server中為數(shù)據(jù)庫開用戶?
(1) 啟動Microsoft SQL Server 6.5 EM ,選擇適當(dāng)?shù)姆⻊?wù)器。?
(2) 選擇login目錄,單擊右鍵,選擇 New Login...,彈出 Manage Logins窗口。?
(3) 在Login Name中輸入用戶名;在Password中輸入用戶密碼;在數(shù)據(jù)庫框中,選擇用戶所 要訪問的數(shù)據(jù)庫。?
>
(4) 單擊“ADD”按鈕。重復(fù)一次密碼。?
7. 在SQL Server中為數(shù)據(jù)庫用戶設(shè)置訪問權(quán)限?
(1) 對于新開的數(shù)據(jù)庫一定要為訪問它的用戶提供權(quán)限,否則這個數(shù)據(jù)庫是不能被訪問的。 ?
(2) 啟動Microsoft SQL Server 6.5 EM ,選擇適當(dāng)?shù)姆⻊?wù)器以及數(shù)據(jù)庫。?
(3) 從Object菜單中選擇Object Permission菜單項,再在彈出的對話框中列出了單擊By Us er標(biāo)簽。?
(4) 要想授予一個用戶或用戶組特定的權(quán)限,只要從User/Group下拉式列表中選定用戶或用 戶組,并單擊相應(yīng)權(quán)限的單元格。?
(5) 最后單擊“Set”按鈕,保存設(shè)置。?
另外,SQL Server 6.5也為系統(tǒng)管理員提供了功能強大的備份和恢復(fù)數(shù)據(jù)庫功能。?
但是,想從網(wǎng)絡(luò)客戶機訪問SQL Server只設(shè)服務(wù)器方還不行。利用Visual Basic 對SQL Ser ver進行編程還需要對客戶端的ODBC進行設(shè)置。?
ODBC(開放數(shù)據(jù)庫連接)是Microsoft為應(yīng)用程序開發(fā)人員提供的一種策略。它采用 單一的API來輻射各種不同的數(shù)據(jù)庫引擎、關(guān)系和非關(guān)系的DBMS(數(shù)據(jù)庫管理系統(tǒng))。它使 數(shù)據(jù)庫開發(fā)人員在開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)的時候,可以使用熟悉的ODBC SQL語法,而不用考慮 數(shù)據(jù)源是什么。?
8. 以下是客戶端ODBC的設(shè)置和調(diào)試方法?
(1) 對于USER DSN的設(shè)置?
① 在系統(tǒng)的“開始”菜單上選擇“設(shè)置”,單擊其中的“控制面板”,彈出控制面板框。 ?
② 雙擊“32bit ODBC”圖標(biāo),彈出“ODBC data source administrator”窗口,選擇“USE R DSN”頁,單擊“Add...”按鈕。?
③ 在“Create New Data Source”窗口中選擇“
SQL SERVER”后,單擊“完成”按鈕,彈 出“ODBC SQL SERVER Setup”窗口。?
④ 在 Data Source Name 中輸入數(shù)據(jù)源名,如
“pms”;在 Description 中輸入描述信息 (可選);在 Server 中輸入SQL SERVER 服務(wù)器名,如“hfserver”;單擊Option 按鈕, 在 Database Name 中輸入SQL SERVER 數(shù)據(jù)庫名,如“PMS98”,單擊“OK”按鈕。?⑤ 單擊
“確定”按鈕。?(2) 對于File DSN的調(diào)試?
① 在系統(tǒng)的
“開始”菜單上選擇“設(shè)置”,單擊其中的“控制面板”,彈出控制面板框。 ?② 雙擊
“32bit ODBC”圖標(biāo),彈出“ODBC data source administrator”窗口,選擇“Fil e DSN”頁,單擊“Add...”按鈕。?③ 在
“Create New Data Source”窗口中選擇“SQL SERVER”后,單擊
“下一步”按鈕, 在彈出的輸入框中輸入數(shù)據(jù)源名,如“pms”, 單擊“下一步”按鈕,在彈出的信息框中單 擊“完成”按鈕。?
④ 在彈出的SQL Server Login對話框中:在
“Server”欄中輸入SQL Server服務(wù)器名;在 “Login ID”欄和“Password”欄中輸入登陸SQL Server時用的用戶名和用戶口令;然后單 擊“Options》”按鈕,在Options框中的Database欄中選擇所想登陸的SQL Server數(shù)據(jù)庫名 。然后單擊“OK”按鈕。?Visual Basic 5.0 是Microsoft推出的一個功能強大的可視化編程工具。它憑借與ODBC良好 的接口和提供給用戶極其完善的網(wǎng)絡(luò)數(shù)據(jù)庫訪問控件,贏得國內(nèi)外眾多編程愛好者的青睞。 有了Visual Basic我們可以利用它的ODBC接口在幾分鐘內(nèi)編制一個基于SQL Server的客戶機 /服務(wù)器數(shù)據(jù)庫應(yīng)用軟件。??
9. 以下采用編程常用的DAO和RDO兩種方法,為大家介紹 一下怎樣使用Visual Basic 5.0訪問遠(yuǎn)程SQL Server數(shù)據(jù)庫??
(1) 用DAO方法打開遠(yuǎn)程數(shù)據(jù)庫?
① 在本地ODBC的FileDSN中設(shè)置與SQL SERVER連接的數(shù)據(jù)源。?
需要設(shè):Data Source Name:數(shù)據(jù)源名,Server:SQL服務(wù)器名,Login ID:用戶名,Password :用戶口令,Database Name:數(shù)據(jù)庫名。(這種設(shè)置不可在單機狀態(tài)下設(shè))?
② 添加data控件,以及一個DBGrid控件?
③ 在程序中添加如下代碼:假定數(shù)據(jù)源名為pms;用戶名為:test;用戶口令為:355;SQL Server數(shù)據(jù)表為:工資情況。?
Dim ssql As String?
Data1.Connect=″ODBC;DSN=pms;uid=test;pwd=355″?
ssql=″select*from 工資情況″?
Data1.RecordSource=ssql?
Data.Refresh?
④ 運行程序即可。?
(2) 用RDO方法打開遠(yuǎn)程數(shù)據(jù)庫?
① 在本地ODBC的UserDSN中設(shè)置與SQL SERVER連接的數(shù)據(jù)源。?
需要設(shè):Data Source Name:數(shù)據(jù)源名,Descrption:描述,Server:SQL Server服務(wù)器名,D atabase Name:數(shù)據(jù)庫名。(這種設(shè)置可在單機狀態(tài)下設(shè))?
② 在程序中添加
:?
Option Explicit?
Private mrdoenv As rdoEnvironment?
Private mrdoconn As rdoConnection?
Private mrdors As rdoResultset?
Private Sub Command1Click()?
Dim ssql As String?
Set mrdoenv=rdoEnvironments(0)?
Set mrdoconn=mrdoenv.OpenConnection(″pms″,rdDriverNoPrompt,False,″ODBC;UID=te st;PWD=355″)?
ssql=″select*from 工資情況″?
Set mrdors=mrdoconn.OpenResultset(ssql,rdOpenKeyset,rdConcurRowVer,0)?
以后對mrdors對象進行操作即可。(如:可用Text控件與其相連,但不可用DBGrid。)。?
(3) 用DAO控件打開遠(yuǎn)程數(shù)據(jù)庫?
① 在本地ODBC的UserDSN中設(shè)置與SQL SERVER連接的數(shù)據(jù)源。(下轉(zhuǎn)第19頁)
? 需要設(shè):Data Source Name:數(shù)據(jù)源名,Description:描述,Server:SQL Server服務(wù)器名, Database Name:數(shù)據(jù)庫名。(這種設(shè)置可在單機狀態(tài)下設(shè))?
② 添加DAO控件和DBGrid控件。?
DAO控件:在DataSourcename中添入相應(yīng)的ODBC的DSN,如
“pms”;?DBGrid:在Datasource中選擇相應(yīng)的DAO控件名。?
③ 在程序中添加:?
Data1.Connect=″UID=test;PWD=355″?
ssql=″select*from 工資情況 where 姓名 like′*′″?
Data1.RecordSource=ssql?
Data1.Refresh?
④ 運行程序即可。?
(4) 用RDO控件打開遠(yuǎn)程數(shù)據(jù)庫?
① 在本地ODBC的UserDSN中設(shè)置與SQL SERVER連接的數(shù)據(jù)源。?
需要設(shè):Data Source Name:數(shù)據(jù)源名,Description:描述,Server:SQL Server服務(wù)器名, Database Name:數(shù)據(jù)庫名。(這種設(shè)置可在單機狀態(tài)下設(shè))?
② 添加RDO控件和DBGrid控件:?
RDO控件:在DataSourcename中添入相應(yīng)的ODBC的DSN;在SQL中添入SQL查詢語句;在Passwo rd中添入訪問此數(shù)據(jù)庫的密碼;在Username中添入訪問此數(shù)據(jù)庫的用戶名。?
DBGrid:在Datasource中選擇相應(yīng)的RDO控件名。?
③ 運行程序即可。?
注意:如果需要使用模糊查詢功能,那么RDO的方法和控件均不適用。?
請選擇DAO控件使用。?
通過上述設(shè)置,我們可以用SQL Server和Visual Basic這兩種功能強大的網(wǎng)絡(luò)編程軟件編制 出各種滿足需要的Client/Server數(shù)據(jù)庫應(yīng)用系統(tǒng)。
【開發(fā)基于SQL SERVER 的C/S數(shù)據(jù)庫應(yīng)用系統(tǒng)?】相關(guān)文章:
基于B/S體系結(jié)構(gòu)開發(fā)應(yīng)用系統(tǒng)08-06
基于B/S體系結(jié)構(gòu)開發(fā)應(yīng)用系統(tǒng)08-06
基于μC/OS的嵌入式系統(tǒng)應(yīng)用開發(fā)研究08-19
SQL Server數(shù)據(jù)庫教學(xué)方法探索05-30
基于Client/Server 的課件系統(tǒng)的設(shè)計與實現(xiàn)08-06
基于Client/Server 的課件系統(tǒng)的設(shè)計與實現(xiàn)04-12
開發(fā)基于Web的地震目錄數(shù)據(jù)庫查詢系統(tǒng)08-06
ASP開發(fā)Browse/Server模式的Web數(shù)據(jù)庫08-06
基于XML的三層C/S模型08-06