none
請問如何從用戶端在主機建立一個資料庫 RRS feed

  • 問題

  •  

    以下為章立民先生ADO.NET線上教學的程式片段

    ' 建立資料庫的 Transact-SQL 陳述式
            createStr = _
                  "CREATE DATABASE MyTestDatabase ON PRIMARY " & _
                  "(NAME = MyTestDatabase_Data, " & _
                  " FILENAME = 'C:\MyTestDatabaseData.mdf', " & _
                  " SIZE = 2MB, " & _
                  " MAXSIZE = 10MB, " & _
                  " FILEGROWTH = 10%) " & _
                  " LOG ON " & _
                  "(NAME = MyTestDatabase_Log, " & _
                  " FILENAME = 'C:\MyTestDatabaseLog.ldf', " & _
                  " SIZE = 1MB, " & _
                  " MAXSIZE = 5MB, " & _
                  " FILEGROWTH = 10%) "

            ' 建立連接
            Dim con As SqlConnection = New SqlConnection("Server=(local)\NetSDK;Database=master;Integrated Security=SSPI")

    請問我要建立 Acess的資料庫,該如何撰寫?

    然後再已建立的資料庫中還要建立資料表、欄位該如何撰寫?

    謝謝

    2007年7月15日 上午 09:42

解答

  • 建立資料庫沒有共用方法,請參考各軟體提供的資訊,例如:

    mkAngryMSITStore:C:\Program%20Files\Common%20Files\Microsoft%20Shared\OFFICE11\1028\ADO210.CHM::/htm/admscdatabasecreationexample.htm

     


    ADO 2.5
    Sub CreateDatabase()
        On Error GoTo CreateDatabaseError
       
        Dim cat As New ADOX.Catalog
        cat.Create "Provider='Microsoft.Jet.OLEDB.4.0';Data Source='c:\new.mdb'"

        'Clean up
        Set cat = Nothing
        Exit Sub
       
    CreateDatabaseError:
        Set cat = Nothing

        If Err <> 0 Then
            MsgBox Err.Source & "-->" & Err.Description, , "Error"
        End If
    End Sub

     

    Access 資料庫在作業系統內有內建空白樣本,直接複製樣本亦可。例如:

    C:\Windows\ShellNew\ACCESS9.MDB

     

    建立資料表請搜尋 "CREATE TABLE"

    你可以在版上搜尋或是線上手冊搜尋。

    2007年7月15日 上午 10:03
    版主

所有回覆

  • 建立資料庫沒有共用方法,請參考各軟體提供的資訊,例如:

    mkAngryMSITStore:C:\Program%20Files\Common%20Files\Microsoft%20Shared\OFFICE11\1028\ADO210.CHM::/htm/admscdatabasecreationexample.htm

     


    ADO 2.5
    Sub CreateDatabase()
        On Error GoTo CreateDatabaseError
       
        Dim cat As New ADOX.Catalog
        cat.Create "Provider='Microsoft.Jet.OLEDB.4.0';Data Source='c:\new.mdb'"

        'Clean up
        Set cat = Nothing
        Exit Sub
       
    CreateDatabaseError:
        Set cat = Nothing

        If Err <> 0 Then
            MsgBox Err.Source & "-->" & Err.Description, , "Error"
        End If
    End Sub

     

    Access 資料庫在作業系統內有內建空白樣本,直接複製樣本亦可。例如:

    C:\Windows\ShellNew\ACCESS9.MDB

     

    建立資料表請搜尋 "CREATE TABLE"

    你可以在版上搜尋或是線上手冊搜尋。

    2007年7月15日 上午 10:03
    版主
  • :::

            '建立mdb檔案
            Dim lcCreaStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='\\db-machine\db-file\abc.mdb';Jet OLEDBBig Smileatabase Password=''"
            Dim loCatalog As Object = CreateObject("ADOX.Catalog")
            loCatalog.Create(lcCreaStr)

     

     

            '建立資料表
            Dim cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\db-machine\db-file\abc.mdb")
            Dim cmd As New OleDbCommand()

            Dim sql As String = "CREATE TABLE MyTable (id int,name text(10))"
            cmd.Connection = cn
            cmd.CommandText = sql

            cn.Open()
            cmd.ExecuteNonQuery()

    2007年7月15日 下午 02:24
  • 謝謝大大,這是我找到的資料供參考

     

    <a href="http://study.99net.net/study/program/vb/1049955696.html"></a>

    1、ADOX 概述
    MicrosoftR ActiveXR Data Objects Extensions for Data Definition Language and Security (ADOX) 是對 ADO 對像和編程模型的擴展。ADOX 包括用於模式創建和修改的對象,以及安全性。由於它是基於對像實現模式操作,所以用戶可以編寫對各種數據源都能有效運行的代碼,而與它們原始語法中的差異無關。

    ADOX 是核心 ADO 對象的擴展庫。它顯露的其他對象可用於創建、修改和刪除模式對象,如表格和過程。它還包括安全對象,可用於維護用戶和組,以及授予和撤消對象的權限。

    要通過開發工具使用 ADOX,需要建立對 ADOX 類型庫的引用。對 ADOX 庫的說明為「Microsoft ADO Ext. for DDL and Security.」。ADOX 庫文件名為「Msadox.dll」,程序 ID (ProgID) 為「ADOX」。有關建立庫引用的詳細信息,請參閱開發工具的文檔。
    2、ADOX 對像
    Catalog   包含描述數據源模式目錄的集合。
    Column    表示表、索引或關鍵字的列。
    Group     表示在安全數據庫內有訪問權限的組帳號。
    Index     表示數據庫表中的索引。
    Key       表示數據庫表中的主關鍵字、外部關鍵字或唯一關鍵字。
    Procedure  表示存儲的過程。
    Table    表示數據庫表,包括列、索引和關鍵字。
    User     表示在安全數據庫內具有訪問權限的用戶帳號。
    View     表示記錄或虛擬表的過濾集。
    3、ADOX 方法
    Append(Columns) 將新的 Column 對像添加到 Columns 集合。
    Append(Groups) 將新的 Group 對像添加到 Groups 集合。
    Append(Indexes) 將新的 Index 對像添加到 Indexes 集合。
    Append(Keys) 將新的 Key 對像添加到 Keys 集合。
    Append(Procedures) 將新的 Procedure 對像添加到 Procedures 集合。
    Append(Tables) 將新的 Table 對像添加到 Tables 集合。
    Append(Users) 將新的 User 對像添加到 Users 集合。
    Append(Views) 將新的 View 對像添加到 Views 集合。
    ChangePassword 更改用戶帳號的密碼。
    Create 創建新的目錄。
    Delete 刪除集合中的對象。
    GetObjectOwner 返回目錄中對象的擁有者。
    GetPermissions 獲得對像上組或用戶的權限。
    Item 按名稱或序號返回集合的指定成員。
    Refresh 更新集合中的對象,以反映針對提供者可用的和指定的對象。
    SetObjectOwner 指定目錄中對象的擁有者。
    SetPermissions 設置對像上組或用戶的權限。
    4、ADOX 屬性
    ActiveConnection 指示目錄所屬的 ADO Connection 對象。
    Attributes 描述列特性。
    Clustered 指示索引是否被分簇。
    Command 指定可用於創建或執行過程的 ADO Command 對象。
    Count 指示集合中的對象數量。
    DateCreated 指示創建對象的日期。
    DateModified 指示上一次更改對象的日期。
    DefinedSize 指示列的規定最大大小。
    DeleteRule 指示主關鍵字被刪除時將執行的操作。
    IndexNulls 指示在索引字段中有 Null 值的記錄是否有索引項。
    Name 指示對象的名稱。
    NumericScale 指示列中數值的範圍。
    ParentCatalog 指定表或列的父目錄以便訪問特定提供者的屬性。
    Precision 指示列中數據值的最高精度。
    PrimaryKey 指示索引是否代表表的主關鍵字。
    RelatedColumn 指示相關表中相關列的名稱(僅關鍵字列)。
    RelatedTable 指示相關表的名稱。
    SortOrder 指示列的排序順序(僅索引列)。
    Type(列) 指示列的數據類型。
    Type(關鍵字) 指示關鍵字的數據類型。
    Type(表) 指示表的類型。
    Unique 指示索引關鍵字是否必須是唯一的。
    UpdateRule 指示主關鍵字被更新時會執行的操作。

    5、範例
    一、創建數據庫範例
    如下代碼顯示如何通過 Create 方法創建新的 Jet 數據庫。

    Sub CreateDatabase()

       Dim cat As New ADOX.Catalog
       cat.Create ""Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\new.mdb""

    End Sub
    二、創建表範例
    Sub CreateTable()

       Dim tbl As New Table
       Dim cat As New ADOX.Catalog

    '打開目錄。
       ' 打開目錄。
       cat.ActiveConnection = _
          ""Provider=Microsoft.Jet.OLEDB.4.0;"" & _
          ""Data Source=c:\Program Files\Microsoft Office\"" & _
          ""Office\Samples\Northwind.mdb;""

       tbl.Name = ""MyTable""
       tbl.Columns.Append ""Column1"", adInteger
       tbl.Columns.Append ""Column2"", adInteger
       tbl.Columns.Append ""Column3"", adVarWChar, 50
       cat.Tables.Append tbl

    End Sub
    三、創建索引範例
    如下代碼演示如何創建新的索引。索引針對表的兩個列建立。

    Sub CreateIndex()

       Dim tbl As New Table
       Dim idx As New ADOX.Index
       Dim cat As New ADOX.Catalog

    ' 打開目錄。
       ' 打開目錄。
       cat.ActiveConnection = _
          ""Provider=Microsoft.Jet.OLEDB.4.0;"" & _
          ""Data Source=c:\Program Files\Microsoft Office\"" & _
          ""Office\Samples\Northwind.mdb;""

       ' 定義表並將其追加到目錄
       tbl.Name = ""MyTable""
       tbl.Columns.Append ""Column1"", adInteger
       tbl.Columns.Append ""Column2"", adInteger
       tbl.Columns.Append ""Column3"", adVarWChar, 50
       cat.Tables.Append tbl

       ' 定義多列索引
       idx.Name = ""multicolidx""
       idx.Columns.Append ""Column1""
       idx.Columns.Append ""Column2""

       ' 將索引追加到表上
       tbl.Indexes.Append idx

    End Sub
    四、創建關鍵字範例
    如下代碼演示如何創建新的外部關鍵字。假定已存在兩個表(Customers 和 Orders)。

    Sub CreateKey()

       Dim kyForeign As New ADOX.Key
       Dim cat As New ADOX.Catalog

       cat.ActiveConnection = ""Provider=Microsoft.Jet.OLEDB.4.0;"" & _
          ""Data Source=c:\Program Files\Microsoft Office\"" & _
          ""Office\Samples\Northwind.mdb;""

       kyForeign.Name = ""CustOrder""
       kyForeign.Type = adKeyForeign
       kyForeign.RelatedTable = ""Customers""
       kyForeign.Columns.Append ""CustomerId""
       kyForeign.Columns(""CustomerId"").RelatedColumn = ""CustomerId""
       kyForeign.UpdateRule = adRICascade
       cat.Tables(""Orders"").Keys.Append kyForeign
    End Sub

    2007年7月16日 上午 05:26