在VB中更改SQL 数据库结构
2008-04-09 04:39:38来源:互联网 阅读 ()
---- 这个小工具由VB开发,利用ADO 访问数据库,实现更改数据库结构,其他语言也可以此作为参考。启动VB6.0,新建一个工程,在菜单-工程-引用里选"Microsoft ActiveX Data Objects 2.0 Library",代码里需要有
dim conn As New ADODB.Connection 定义ADO数据库对象 conn.ConnectionString = "driver={SQL Server};" & _ "server=" & ServerName & ";uid=" & UserName & "; pwd=" & Password & ";database=" & DatabaseName & "" 连接数据串 conn.open 连接数据库---- 注:ServerName为服务器名;UserName为用户名;Password为用户口令; DatabaseName要登录的数据库名,可以为空。
---- 核心代码如下:
一、建立数据库
---- 原理:建立数据库先要初始化一个数据库设备,然后在此设备上建立数据库。所有的设备名在系统表"sysdevices"里有记录,所有的数据库名在系统表"sysdatabases"里有记录。在建立之前,最好先查询这两个系统表,看名称是否已经存在。在建立设备之前,还需要的一个物理名和空闲的设备标识号。初始化设备语法: DISK INIT NAME="device_name",PHYNAME= "physical_name",VDEVNO=device_number, SIZE=numberofblock---- 说明:这里,NAME是数据库设备名(一个有效的标识符),PHYNAME(数据库设备的物理名)是原始的磁盘分区UNIX或外设(vms)名,或者是操作系统的文件名。VDEVNO时数据库的设备标识号,合法值为1-255,SIZE的单位是2KB的块,例如1MB(1024KB)时SIZE值为512。
---- 建立数据库语法:CREATE DATABASE database_name [ON database_device]
---- 说明:database me是要建的数据库名,database_device是设备名
---- 要新建立一个数据库,就需要设备名,数据库名,物理名和设备号。具体步骤如下:
---- 我们假设用户要新建立设备dbName,在设备dbName上建立数据库dbName。
---- 1)得到设备名。dbName是用户给出的设备名;先查询系统表sysdevices,看用户给出的设备名dbName是否已经存在,如果此设备名存在,就需要更换一个设备名,因为设备名是唯一的。
sql = "select * from sysdevices where name=" & dbName & "" Set rs = conn.Execute(sql) If Not rs.EOF Then MsgBox "设备名"" & dbName & "" 已存在!", 16, "请重新输入名称" Exit Sub End If---- 2)得到数据库名。dbName是用户给出的数据库名;查询系统表sysdatabases,看用户给出的数据库名dbName是否已经存在,如果此数据库存在,就需要更换一个数据库名,像设备名一样,数据库名也是唯一的
sql = "select * from sysdatabases where name=" & dbName & "" Set rs = conn.Execute(sql) 下面代码略---- 3)得到PHYNAME物理名。查询服务器上数据库文件的物理位置serverpath,典型的,我们可以从系统表sysdevices中查询master(这是SQL Server的主库名)数据库的位置,例如G:\MSSQL\DATA\MASTER.DAT,则我们的数据库可以建在"G:\MSSQL\DATA\"目录下。
sql = "select name,phyname from sysdevices " low/16777216为设备号 Set rs = conn.Execute(sql) 然后遍历记录对象rs,当name="master"时,取出phyname, 从而可以得到物理位置serverpath =G:\MSSQL\DATA\。---- 4)得到一个空闲的设备号vdevno。设备号合法值1~255,遍历这些号,查找出未被使用的空闲设备号,下面程序得到已有的设备号
sql = "select distinct low/16777216 from sysdevices order by low/16777216" low/16777216为设备号---- 5)建立数据库。所需的信息都准备完毕,可以建立数据库了(注:下面的"" & Chr(34) & ""就是一个"""双引号,这样处理后,才能满足语法要求;数据库为20M,则dbSize=512*20)
sql = "DISK INIT NAME=" & Chr(34) & "" & dbName & "" & Chr(34) & ",PHYSNAME=" & Chr(34) & "" & serverpath & "" & dbName & ".dat" & Chr(34) & ",VDEVNO=" & vdevno & ",SIZE=" & dbSize & "" Set rs = conn.Execute(sql) 初始化设备 sql = "CREATE DATABASE " & dbName & " on " & dbName & "=" & dbSize & "" 注: 第一个dbName是数据库名, 第二个dbName是设备名 Set rs = conn.Execute(sql) 在设备dbName上建立数据库dbName MsgBox "数据库"" & dbName & ""建在服务器上 "" & serverpath & "" & dbName & ".dat", 建立成功!", 64, "成功"
二、建立表格
---- 建立表格比较简单,这里用到了自动计数字段和缺省值字段类型,语法如下:CREATE TABLE table_name (field_name data_type [NOT NULL|NULL],…)---- 说明:table_name为新建的表名,field_name为字段名,data_type为数据类型。
(注意下面的fileid int IDENTITY字段自动计数, datetime NOT NULL DEFAULT(GETDATE())字段每当入 库时有个缺省值,由数据库生成当时的时间)。 sql = "CREATE TABLE " & TableName & " (fileid int IDENTITY, filetime datetime NOT NULL DEFAULT(GETDATE()),fileimage image NULL )" conn.Execute sql 建立表格标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:实现图像缩放的一种方法
下一篇:在VB里巧用集合
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash