久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

SQL Server數(shù)據(jù)對(duì)象結(jié)構(gòu)的動(dòng)態(tài)建立與訪問(wèn)

瀏覽:120日期:2023-10-30 11:54:05

Microsoft SQL Server與ORACAL、Sybase都是當(dāng)前比較流行的數(shù)據(jù)庫(kù)管理系統(tǒng)(RDMS),隨著SQL Server的不斷完善與發(fā)展,以及與網(wǎng)絡(luò)操作系統(tǒng)Windows NT的完美結(jié)合,它為分布式客戶(hù)服務(wù)器結(jié)構(gòu)程序設(shè)計(jì)提供了良好的開(kāi)發(fā)環(huán)境,也因此越來(lái)越受到人們的重視。

Microsoft SQL Server是一個(gè)可縮放、高性能的數(shù)據(jù)庫(kù)管理系統(tǒng),它提供了與Windows NT線程和調(diào)度服務(wù)、性能監(jiān)視器和事件瀏覽器的集成,基于Windows管理界面并提供對(duì)多個(gè)服務(wù)器上的遠(yuǎn)程數(shù)據(jù)復(fù)制管理、服務(wù)器管理、診斷和調(diào)整的可視化拖放控制。

分布式管理對(duì)象(DMO)為SQL Server引擎和服務(wù)提供了一個(gè)對(duì)象接口。SQL-DMO是為Windows 95與 Windows NT操作系統(tǒng)提供的32位OLE自動(dòng)化對(duì)象,OLE是維護(hù)應(yīng)用程序共享對(duì)象的標(biāo)準(zhǔn)和方法,是一種允許應(yīng)用程序?yàn)檫M(jìn)行管理或數(shù)據(jù)訪問(wèn)共享對(duì)象的編程方法。DMO是利用OLE結(jié)構(gòu)開(kāi)發(fā)的,它為與OLE兼容的應(yīng)用程序提供了通向所有SQL Server管理功能的接口,DMO使軟件開(kāi)發(fā)者直接訪問(wèn)SQL Server數(shù)據(jù)對(duì)象變成可能。我們利用Visual Basic與Visual FoxPro等編程工具就可以使用分布式管理對(duì)象實(shí)現(xiàn)對(duì)SQL Server的直接訪問(wèn)。

Microsoft SQL Server所提供的工具使客戶(hù)端能通過(guò)多種方法訪問(wèn)服務(wù)器上的數(shù)據(jù),這些工具的核心部分即是Transact-SQL(事務(wù)SQL)代碼。Transact-SQL是結(jié)構(gòu)化查詢(xún)語(yǔ)言( SQL)的增強(qiáng)版本,它提供了許多附加的功能和函數(shù)。利用Transact-SQL,你可以創(chuàng)建數(shù)據(jù)庫(kù)設(shè)備、數(shù)據(jù)庫(kù)和其它數(shù)據(jù)對(duì)象、從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)、修改數(shù)據(jù),也可以動(dòng)態(tài)地改變SQL Server中的設(shè)置。因此,使用Transact-SQL大大地提高了應(yīng)用程序的實(shí)用性。

當(dāng)我們進(jìn)行Client/Server結(jié)構(gòu)項(xiàng)目開(kāi)發(fā)時(shí)需要建立若干個(gè)數(shù)據(jù)對(duì)象的結(jié)構(gòu),如果所開(kāi)發(fā)的項(xiàng)目是面向某個(gè)具體的客戶(hù)時(shí),在Server上手工建立數(shù)據(jù)庫(kù)設(shè)備、數(shù)據(jù)庫(kù)與表是可行的,但是如果所開(kāi)發(fā)的項(xiàng)目是作為軟件發(fā)行而非面向某個(gè)具體的客戶(hù)時(shí),無(wú)疑,手工建立數(shù)據(jù)對(duì)象的結(jié)構(gòu)是不現(xiàn)實(shí)的,我們需要將創(chuàng)建數(shù)據(jù)庫(kù)與表的過(guò)程固化在程序中,當(dāng)程序運(yùn)行時(shí)動(dòng)態(tài)地在Server上建庫(kù)與表。因此,利用分布式管理對(duì)象與Transact-SQL是進(jìn)行Client/Server結(jié)構(gòu)程序設(shè)計(jì)的重要手段。

下面將討論如何在Visual Basic 5.0中利用DMO與Transact-SQL在SQL Server上建立數(shù)據(jù)庫(kù)設(shè)備、數(shù)據(jù)庫(kù)及其他數(shù)據(jù)對(duì)象。我們從具體問(wèn)題著手:在SQL Server上建立200M與400M的數(shù)據(jù)庫(kù)設(shè)備Device_1、Device_2,在Device_1與Device_2上分別建立容量為100M的兩個(gè)數(shù)據(jù)庫(kù)Db1與DB2,在Db1庫(kù)中建立表T_1,有四個(gè)域:Name,Age,Sex,ID_Code,以ID_Code為關(guān)鍵字,以Name為索引,在Db2庫(kù)中建立表T_2,有五個(gè)域:Name、Age、Sex、Department、No,以Department與No為關(guān)鍵字。

訪問(wèn)SQL Server,首先要打開(kāi)SQL Service Manager,SQL Service Manager 用于啟動(dòng)、暫停、繼續(xù)、停止SQL Server的服務(wù),包括MSSQLServer與SQLExecutive兩項(xiàng)。可以通過(guò)手工方式打開(kāi)這兩項(xiàng)服務(wù),也可以在程序中通過(guò)行命令式打開(kāi)它們。

若采用手工方式,則打開(kāi)SQL Service Manager,對(duì)于其中的服務(wù)MSSQLServer與SQLExecutive,直接啟動(dòng)它們的Start/Continue綠燈即可。

采用行命令啟動(dòng)方式,可利用VB的Shell命令:

X=shell('Sqlmgr.exe',1) 顯示SQL Service Manager窗口; X=shell('net start mssqlserver') 啟動(dòng)MSSQLServer服務(wù) X=shell('net start sqlexecutive') 啟動(dòng)SQLExecutive服務(wù)

因?yàn)樵谶@里我們希望通過(guò)編程在SQL Server上實(shí)現(xiàn)數(shù)據(jù)對(duì)象結(jié)構(gòu)的動(dòng)態(tài)建立,因此建議使用行命令方式。

啟動(dòng)了SQL Server Manager后,我們就可以利用DMO與Transact-SQL按以下步驟來(lái)建數(shù)據(jù)對(duì)象了。

1.為能使用DMO,首先需要打開(kāi)VB工具欄中Reference(引用),選擇Microsoft Windows Common Control 5.0,如果在引用欄中沒(méi)有發(fā)現(xiàn)此項(xiàng),則選擇Browse(瀏覽),將WINNTSystem32目錄下的Comctl32.oca加入到Reference中來(lái)。

2.在模塊文件(.BAS)中建立SQLOLE對(duì)象: Global OServer as New SQLOLE.SQLServer

3.建立與SQL Server的連接: OServer.Connect ServerName:=注冊(cè)的SQL Server名,Login:=登錄名(一般為sa),Password:=密碼

4.建數(shù)據(jù)庫(kù)設(shè)備Device_1與Device_2: dim transql as string transql='use master' & _ 'DISK INIT' & _ 'Name='Device_1',' & _ 'Physname='D:SQLdatadevice1.dat',' & _ 'vdevno=10,' & _ 'size=102400' & _ 'DISK INIT' & _ 'Name='Device2',' & _ 'Physname='D:SQLdatadevice2.dat',' & _ 'vdevno=11,' & _ 'size=204800' OServer.ExecuteImmediate Command:=transql,exectype:=SQLOLEExec_Default

5.建數(shù)據(jù)庫(kù)Db_1與Db_2: transql = 'CREATE DATABASE Db_1 ON Device_1=100 ' OServer.ExecuteImmediate Command:=transql, exectype:=SQLOLEExec_Default transql = 'CREATE DATABASE Db_2 ON Device_2=100 ' OServer.ExecuteImmediate Command:=transql, exectype:=SQLOLEExec_Default

6.在數(shù)據(jù)庫(kù)中建表: 在數(shù)據(jù)庫(kù)Db_1上建表T_1: transql = 'use Db_1 ' & _ 'create table T_1 ' & _ '(Name char(8) null, ' & _ ' Age numeric(2) null, ' & _ ' Sex smallint null, ' & _ ' ID_Code char(16) not null, ' & _ ' constraint c_1 primary key clustered (ID_Code))' OServer.ExecuteImmediate Command:=transql,exectype:=SQLOLEExec_Default 建表T_1的Name列的索引: transql='CREATE INDEX index_1 ON T_1 (Name)' OServer.ExecuteImmediate Command:=transql,exectype:=SQLOLEExec_Default 在數(shù)據(jù)庫(kù)Db_2上建表T_2: transql = 'use Db_2 ' & _ 'create table T_2 ' & _ '(Name char(8) null, ' & _ ' Age numeric(2) null, ' & _ ' Sex smallint null, ' & _ ' Department char(16) not nill, ' & _ ' No char(4) not null,' & _ 'constraint c_2 primary key clustered (Department,No))' OServer.ExecuteImmediate Command:=transql, exectype:=SQLOLEExec_Default

此時(shí),我們完成了建立數(shù)據(jù)對(duì)象的編碼工作,程序被編譯執(zhí)行后,就會(huì)在SQL Server上自動(dòng)建立數(shù)據(jù)庫(kù)設(shè)備、數(shù)據(jù)庫(kù)及庫(kù)中的表。

對(duì)于數(shù)據(jù)庫(kù)設(shè)備,可以用DISK REINIT,DISK REFIT,DISK RESIZE對(duì)它進(jìn)行操作,如要擴(kuò)展數(shù)據(jù)庫(kù)設(shè)備Device_1的容量為200M,可利用如下方法:

DISK RESIZE Name='Devive_1', Size = 102400

對(duì)于SQL Server上已經(jīng)建立的數(shù)據(jù)庫(kù)及表的結(jié)構(gòu),也可以通過(guò)DMO與事務(wù)SQL進(jìn)行修改與刪除。類(lèi)似于上面的編碼,可以利用Alter Database Db_1,Alter DatabaseDb_2,Alter Table T_1,Alter Table T_2等事務(wù)SQL語(yǔ)句進(jìn)行對(duì)所建立的數(shù)據(jù)庫(kù)與表的的結(jié)構(gòu)進(jìn)行修改,而利用Drop Database, Drop Table事務(wù)語(yǔ)句刪除所建立的數(shù)據(jù)庫(kù)與表。

以上討論了如何在SQL Server上動(dòng)態(tài)地建立與訪問(wèn)數(shù)據(jù)對(duì)象的結(jié)構(gòu),至于對(duì)SQL Server上數(shù)據(jù)庫(kù)與表的內(nèi)容的訪問(wèn),可以利用ODBC(開(kāi)放數(shù)據(jù)庫(kù)互連)、DAO(數(shù)據(jù)訪問(wèn)對(duì)象)、RDO(遠(yuǎn)程數(shù)據(jù)對(duì)象)或DB-Library進(jìn)行編程。

主站蜘蛛池模板: 亚洲a级| 国产一区在线不卡 | 国产中文字幕在线 | 国产精品久久久久久av公交车 | ririsao久久精品一区 | 国产成人一区二区三区 | 男人天堂视频在线观看 | 欧美视频在线观看 | 日本在线观看网站 | 色性网站 | 欧美男人的天堂 | av在线一区二区三区 | 国产一区二区三区在线免费观看 | 欧洲成人午夜免费大片 | 国产一级特黄视频 | 日本好好热视频 | 久久久久久亚洲精品 | 国产不卡免费视频 | 久久亚洲国产精品 | 91成人免费看片 | 中文字幕亚洲精品 | 91精品久久久久久久久久久 | 久草在线高清 | 精品亚洲一区二区三区在线观看 | 成人免费在线电影 | 99精品免费| 天天射天天干 | 一区二区三区日韩 | 狠狠综合久久av一区二区小说 | 成人综合社区 | 欧美一区二区三区在线视频 | 国产无套丰满白嫩对白 | 日韩激情欧美 | 久久久久久久久99精品 | 日韩精品一二三 | 国产精品色婷婷亚洲综合看 | 欧美一级特 | 国产精品成人在线 | 亚洲欧洲av在线 | 日本二区在线观看 | 亚洲一区二区三区久久 |