动态网站制作指南
[  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库学院 > 数据库技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ 数据库技巧 ]的信息

本月文章推荐
.在编写存储过程时使用 Set NoCou.
.SQL Server的链接服务器技术小结.
.SQL Server 2005数据库恢复脚本示.
.如何快速杀死占用过多资源(CPU,内.
.MS SQL Server存储过程参数的隐式.
.小记存储过程中经常用到的本周,.
.Sql server数据库开发常用汇总.
.探讨基于不绑定变量与绑定变量的.
.SQL Artisan 1.3功能使用介绍.
.全面解析数据挖掘的分类及各种分.
.sql server行转列问题终极解决.
.sql2k中新增加的Function的sqlbo.
.TEMP表空间肆意扩大无法继续扩展.
.SQL2005中部署.net 3DES加密函数.
.SELECT语句中“加锁选项”功能说.
.讲解如何检查使用空间大于90%的表.
.在SQL Server 2005中用存储过程实.
.在SQL Server 2005中查询表结构及.
.优化数据库的方法及SQL语句优化的.
.探讨SQL Server存储过程.

SQL Server数据对象结构的动态建立与访问

文章类别:数据库技巧 | 发表日期:2006-3-17 |


Microsoft SQL Server与ORACAL、Sybase都是当前比较流行的数据库管理系统(RDMS),随着SQL Server的不断完善与发展,以及与网络操作系统Windows NT的完美结合,它为分布式客户服务器结构程序设计提供了良好的开发环境,也因此越来越受到人们的重视。

Microsoft SQL Server是一个可缩放、高性能的数据库管理系统,它提供了与Windows NT线程和调度服务、性能监视器和事件浏览器的集成,基于Windows管理界面并提供对多个服务器上的远程数据复制管理、服务器管理、诊断和调整的可视化拖放控制。

分布式管理对象(DMO)为SQL Server引擎和服务提供了一个对象接口。SQL-DMO是为Windows 95与 Windows NT操作系统提供的32位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 5.0中利用DMO与Transact-SQL在SQL Server上建立数据库设备、数据库及其他数据对象。我们从具体问题着手:在SQL Server上建立200M与400M的数据库设备Device_1、Device_2,在Device_1与Device_2上分别建立容量为100M的两个数据库Db1与DB2,在Db1库中建立表T_1,有四个域:Name,Age,Sex,ID_Code,以ID_Code为关键字,以Name为索引,在Db2库中建立表T_2,有五个域: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",1) 显示SQL Service Manager窗口;
X=shell("net start mssqlserver") 启动MSSQLServer服务
X=shell("net start sqlexecutive") 启动SQLExecutive服务

因为在这里我们希望通过编程在SQL Server上实现数据对象结构的动态建立,因此建议使用行命令方式。

启动了SQL Server Manager后,我们就可以利用DMO与Transact-SQL按以下步骤来建数据对象了。

1.为能使用DMO,首先需要打开VB工具栏中Reference(引用),选择Microsoft Windows Common Control 5.0,如果在引用栏中没有发现此项,则选择Browse(浏览),将\WINNT\System32目录下的Comctl32.oca加入到Reference中来。

2.在模块文件(.BAS)中建立SQLOLE对象:
Global OServer as New SQLOLE.SQLServer

3.建立与SQL Server的连接:
OServer.Connect ServerName:=注册的SQL Server名,Login:=登录名(一般为sa),Password:=密码

4.建数据库设备Device_1与Device_2:
dim transql as string
transql="use master" & _
"DISK INIT" & _
"Name='Device_1'," & _
"Physname='D:\SQL\data\device1.dat'," & _
"vdevno=10," & _
"size=102400" & _
"DISK INIT" & _
"Name='Device2'," & _
"Physname='D:\SQL\data\device2.dat'," & _
"vdevno=11," & _
"size=204800"
OServer.ExecuteImmediate Command:=transql,exectype:=SQLOLEExec_Default

5.建数据库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.在数据库中建表:
在数据库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
在数据库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

此时,我们完成了建立数据对象的编码工作,程序被编译执行后,就会在SQL Server上自动建立数据库设备、数据库及库中的表。

对于数据库设备,可以用DISK REINIT,DISK REFIT,DISK RESIZE对它进行操作,如要扩展数据库设备Device_1的容量为200M,可利用如下方法:

DISK RESIZE
Name='Devive_1',
Size = 102400

对于SQL Server上已经建立的数据库及表的结构,也可以通过DMO与事务SQL进行修改与删除。类似于上面的编码,可以利用Alter Database Db_1,Alter DatabaseDb_2,Alter Table T_1,Alter Table T_2等事务SQL语句进行对所建立的数据库与表的的结构进行修改,而利用Drop Database, Drop Table事务语句删除所建立的数据库与表。

以上讨论了如何在SQL Server上动态地建立与访问数据对象的结构,至于对SQL Server上数据库与表的内容的访问,可以利用ODBC(开放数据库互连)、DAO(数据访问对象)、RDO(远程数据对象)或DB-Library进行编程。


上一篇:如何在SQLSERVER中快速有条件删除海量数据 人气:6373
下一篇:用存储过程几个最直接的好处 人气:9336
点击此处浏览全部SQL Server的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-5-11 东旭网络问卷调查系统 v2.4 Beta2
2008-5-11 非零坊『留言本』 v3.3.1
2008-5-11 e新时代企业网站管理系统 v6.0 S
2008-5-11 依悠广告管理系统 v2.1
2008-5-11 Gxjss留言本 v1.0
2008-5-11 深圳公交车线路查询系统 v1.0
2008-5-11 麦群网整站程序 (080510版)
2008-5-11 杰奇小说连载系统 v1.1
2008-5-11 小型FLASH+ASP+XML的新闻发布系统
2008-5-7 Windows XP SP3 官方英文版
2008-5-7 Windows XP SP3 官方香港中文版
2008-5-7 Windows XP SP3 官方繁体中文版
2008-5-7 Windows XP SP3 官方简体中文版
2008-4-30 Multiple Unzip Wizard 1.02
2008-4-30 Multiple Unrar Wizard 1.0.0
2008-4-30 WinZip Install/Try/Uninstall a
2008-4-30 ZIP压缩文件修复器WzipFix 2.0
2008-4-30 Pentazip 6.01 Build 189 For Wi
  发表评论
姓 名: 验证码: [ 全部贴吧 ] [ 浏览评论 ]
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報