• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    VB實現SQL Enterprise Manager功能

    發布: 2007-7-14 20:28 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 19次 | 進入軟件測試論壇討論

    領測軟件測試網 完成在SQL Server數據庫中建立設備,建立數據庫,建立表格,分配權限的功能方便了數據庫應用程序所需Sql Server環境的建立,根本不用啟動SQL Enterprise Manager配置數據庫。
       這個小工具由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_name是要建的數據庫名,database_device是設備名

       要新建立一個數據庫,就需要設備名,數據庫名,物理名和設備號。具體步驟如下:

       我們假設用戶要新建立設備dbName,在設備dbName上建立數據庫dbName。

       1)得到設備名 bName是用戶給出的設備名;先查詢系統表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 建立表格

    三、建立用戶組用戶
       建立用戶組和用戶不能直接通過SQL語句完成,需要執行SQL Server的存儲過程sp_addlogin,sp_addgroup, sp_adduser。我們假設新建登錄賬號是username1,用戶名是username1,組名是group1,則步驟如下:
       1)建立用戶的登錄賬號

    語法:sp_addlogin login_name,password[,defdb]
    其中,login_name是用戶的登錄名,password是用
    戶的口令,defdb上登錄的缺省數據庫名稱。建立數
    據庫DatabaseName的登錄賬號:
    sql = "EXECUTE sp_addlogin " & username1 & ","
    & password1 & "," & DatabaseName & ""
    Set rs = conn.Execute(sql)

       2)增加用戶組
    語法:sp_addgroup group_name
    其中,group_name 是新建組名
    sql = "EXECUTE sp_addgroup " & group1 & ""
    Set rs = conn.Execute(sql)

       3)增加用戶
    語法:sp_adduser login_name
    [,name_in_db][,grpname]]
    其中,login_name用戶名,name_in_db是用戶在當
    前數據庫中的名字(這里是第一步建立的登錄賬號
    username1),grpname是要將用戶加入的那個組的組名。

    在數據庫DatabaseName增加用戶username1:
    sql = "EXECUTE sp_adduser " & username1 & "," &
    username1 & "," & group1& ""
    注:第一個username1是用戶名,第二個username1是
    數據庫DatabaseName的登錄賬號
    Set rs = conn.Execute(sql)

    四、分配權限
       語法:grant permission_list on object_name to who
       其中,permission_list是所要分配的權限清單,object_name是在這個對象上的權限,who是接受授權的用戶。

       先從系統表sysobjects得到所有的用戶建立表格名(type=U)

    sql = "select name from sysobjects where type=U"
    Set rs = conn.Execute(sql)

       然后從中選取所需要的表格來分配權限給其他用戶。例如,這里選擇將tablename3的讀取權限分配給組group1。
    sql = "grant select on " & tablename3 &
    " to " & group1 & ""
    conn.Execute sql

       由于這個小工具的使用,使SQL Server數據庫配置變得簡單、方便了。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>