2005/12/16

ADOXで複数列に主キーを設定する

※旧ロリポブログ サービス終了に伴い転載しました。
(.NET FrameWork1.1)
Imports ADOX
Imports ADOX.DataTypeEnum

'参照設定で  Microsoft ADO Ext. 2.7 for DDL and Security を追加する事
Public Class Class1
    Public Sub CreateDB()
        'mdbファイル作成( E:¥new.mdb )
        Dim cat As New ADOX.Catalog
        cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "data source=e:¥new.mdb;")

        'テーブル追加
        Dim tbl As New Table
        tbl.Name = "MyTable"
        tbl.Columns.Append("ID", adInteger)
        tbl.Columns.Append("CODE", adVarWChar, 10)
        tbl.Columns.Append("NAME", adVarWChar, 10)

        cat.Tables.Append(tbl)

        '一列だけを主キーに設定するならこれでもよい
        '列「ID」を主キーに設定する場合

        'cat.Tables("MyTable").Keys.Append("keyname", KeyTypeEnum.adKeyPrimary, "ID")
        'ID列とCODE列の組み合わせの主キーを設定

        Dim MyKey As New ADOX.Key

        With MyKey
            .Name = "keyname"
            .Type = KeyTypeEnum.adKeyPrimary
            .Columns.Append("ID")
            .Columns.Append("CODE")
        End With

        cat.Tables("MyTable").Keys.Append(MyKey)
    End Sub
End Class

0 件のコメント:

コメントを投稿