Microsoft SQL Server與ORACAL
Sybase都是當前比較流行的數據庫管理系統(RDMS)
隨著SQL Server的不斷完善與發展
以及與網絡操作系統Windows NT的完美結合
它為分布式客戶服務器結構程序設計提供了良好的開發環境
也因此越來越受到人們的重視
Microsoft SQL Server是一個可縮放
高性能的數據庫管理系統
它提供了與Windows NT線程和調度服務
性能監視器和事件浏覽器的集成
基於Windows管理界面並提供對多個服務器上的遠程數據復制管理
服務器管理
診斷和調整的可視化拖放控制
分布式管理對象(DMO)為SQL Server引擎和服務提供了一個對象接口
SQL
DMO是為Windows
與 Windows NT操作系統提供的
位OLE自動化對象
OLE是維護應用程序共享對象的標准和方法
是一種允許應用程序為進行管理或數據訪問共享對象的編程方法
DMO是利用OLE結構開發的
它為與OLE兼容的應用程序提供了通向所有SQL Server管理功能的接口
DMO使軟件開發者直接訪問SQL Server數據對象變成可能
我們利用Visual Basic與Visual FoxPro等編程工具就可以使用分布式管理對象實現對SQL Server的直接訪問
Microsoft SQL Server所提供的工具使客戶端能通過多種方法訪問服務器上的數據
這些工具的核心部分即是Transact
SQL(事務SQL)代碼
Transact
SQL是結構化查詢語言( SQL)的增強版本
它提供了許多附加的功能和函數
利用Transact
SQL
你可以創建數據庫設備
數據庫和其它數據對象
從數據庫中提取數據
修改數據
也可以動態地改變SQL Server中的設置
因此
使用Transact
SQL大大地提高了應用程序的實用性
當我們進行Client/Server結構項目開發時需要建立若干個數據對象的結構
如果所開發的項目是面向某個具體的客戶時
在Server上手工建立數據庫設備
數據庫與表是可行的
但是如果所開發的項目是作為軟件發行而非面向某個具體的客戶時
無疑
手工建立數據對象的結構是不現實的
我們需要將創建數據庫與表的過程固化在程序中
當程序運行時動態地在Server上建庫與表
因此
利用分布式管理對象與Transact
SQL是進行Client/Server結構程序設計的重要手段
下面將討論如何在Visual Basic
中利用DMO與Transact
SQL在SQL Server上建立數據庫設備
數據庫及其他數據對象
我們從具體問題著手
在SQL Server上建立
M與
M的數據庫設備Device_
Device_
在Device_
與Device_
上分別建立容量為
M的兩個數據庫Db
與Db
在Db
庫中建立表T_
有四個域
Name
Age
Sex
ID_Code
以ID_Code為關鍵字
以Name為索引
在Db
庫中建立表T_
有五個域
Name
Age
Sex
Department
No
以Department與No為關鍵字
訪問SQL Server
首先要打開SQL Service Manager
SQL Service Manager 用於啟動
暫停
繼續
停止SQL Server的服務
包括MSSQLServer與SQLExecutive兩項
可以通過手工方式打開這兩項服務
也可以在程序中通過行命令式打開它們
若采用手工方式
則打開SQL Service Manager
對於其中的服務MSSQLServer與SQLExecutive
直接啟動它們的Start/Continue綠燈即可
采用行命令啟動方式
可利用VB的Shell命令
X=shell(
Sqlmgr
exe
) 顯示SQL Service Manager窗口
X=shell(
net start mssqlserver
) 啟動MSSQLServer服務
X=shell(
net start sqlexecutive
) 啟動SQLExecutive服務
因為在這裡我們希望通過編程在SQL Server上實現數據對象結構的動態建立
因此建議使用行命令方式
啟動了SQL Server Manager後
我們就可以利用DMO與Transact
SQL按以下步驟來建數據對象了
為能使用DMO
首先需要打開VB工具欄中Reference(引用)
選擇Microsoft Windows Common Control
如果在引用欄中沒有發現此項
則選擇Browse(浏覽)
將\WINNT\System
目錄下的Comctl
oca加入到Reference中來
在模塊文件(
BAS)中建立SQLOLE對象
Global OServer as New SQLOLE
SQLServer
建立與SQL Server的連接
OServer
Connect ServerName:=注冊的SQL Server名
Login:=登錄名(一般為sa)
Password
=密碼
建數據庫設備Device_
與Device_
dim transql as string
transql=
use master
& _
DISK INIT
& _
Name=
Device_
& _
Physname=
D:\SQL\data\device
dat
& _
vdevno=
& _
size=
& _
DISK INIT
& _
Name=
Device
& _
Physname=
D:\SQL\data\device
dat
& _
vdevno=
& _
size=
OServer
ExecuteImmediate Command:=transql
exectype:=SQLOLEExec_Default
建數據庫Db_
與Db_
transql =
CREATE DATABASE Db_
ON Device_
=
OServer
ExecuteImmediate Command:=transql
exectype:=SQLOLEExec_Default
transql =
CREATE DATABASE Db_
ON Device_
=
OServer
ExecuteImmediate Command:=transql
exectype:=SQLOLEExec_Default
在數據庫中建表:
在數據庫Db_
上建表T_
:
transql =
use Db_
& _
create table T_
& _
(Name char(
) null
& _
Age numeric(
) null
& _
Sex smallint null
& _
ID_Code char(
) not null
& _
constraint c_
primary key clustered (ID_Code))
OServer
ExecuteImmediate Command:=transql
exectype:=SQLOLEExec_Default
建表T_
的Name列的索引
transql=
CREATE INDEX index_
ON T_
(Name)
OServer
ExecuteImmediate Command:=transql
exectype:=SQLOLEExec_Default
在數據庫Db_
上建表T_
:
transql =
use Db_
& _
create table T_
& _
(Name char(
) null
& _
Age numeric(
) null
& _
Sex smallint null
& _
Department char(
) not nill
& _
No char(
) not null
& _
constraint c_
primary key clustered (Department
No))
OServer
ExecuteImmediate Command:=transql
exectype:=SQLOLEExec_Default
此時
我們完成了建立數據對象的編碼工作
程序被編譯執行後
就會在SQL Server上自動建立數據庫設備
數據庫及庫中的表
對於數據庫設備
可以用DISK REINIT
DISK REFIT
DISK RESIZE對它進行操作
如要擴展數據庫設備Device_
的容量為
M
可利用如下方法
DISK RESIZE
Name=
Devive_
Size =
對於SQL Server上已經建立的數據庫及表的結構
也可以通過DMO與事務SQL進行修改與刪除
類似於上面的編碼
可以利用Alter Database Db_
Alter DatabaseDb_
Alter Table T_
Alter Table T_
等事務SQL語句進行對所建立的數據庫與表的的結構進行修改
而利用Drop Database
Drop Table事務語句刪除所建立的數據庫與表
以上討論了如何在SQL Server上動態地建立與訪問數據對象的結構
至於對SQL Server上數據庫與表的內容的訪問
可以利用ODBC(開放數據庫互連)
DAO(數據訪問對象)
RDO(遠程數據對象)或DB
Library進行編程
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22128.html