none
VB 2008 EX + ADOX 生成mdb文件的过程中,如何自定义表在数据库文件中的排列顺序? RRS feed

  • 问题

  • 用adox生成mdb数据库文件的结构的过程中定义了主键,外键,但是成外键必须先生成主表,在生成附表。由于主表先于附表添加,这样一来主表就排在了附表的后边,主表永远是最后一个表。

    不太有大的影响,但是能不能让主表排在第一位,附表(们)排在后边?谢谢。

    下面是实验程序段:
            Dim cat As New Catalog()
            Dim tbClientDetails, tbClientContact As New Table()
            cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=E:\TEST.mdb;" & "Jet OLEDB:Engine Type=5")
    
            With tbClientDetails
                .Name = "ClientDetails"
                With .Columns
                    .Append("ClientID", DataTypeEnum.adInteger)
                    .Append("ClientName", DataTypeEnum.adVarWChar, 50)
                    .Append("ClientAddress", DataTypeEnum.adVarWChar, 100)
                    .Append("ClientTelephone", DataTypeEnum.adInteger, 50)
                End With
            End With
    
            Dim PKey As New Key
            With PKey
                .Name = "ClientPKey"
                .Type = KeyTypeEnum.adKeyPrimary
                .Columns.Append("ClientID")
            End With
    
            tbClientDetails.Keys.Append(PKey)
    
            cat.Tables.Append(tbClientDetails)
    
            With tbClientContact
                .Name = "ClientContact"
                With .Columns
                    .Append("ClientID", DataTypeEnum.adInteger)
                    .Append("FirstName", DataTypeEnum.adVarWChar, 50)
                    .Append("LastName", DataTypeEnum.adVarWChar, 50)
                    .Append("Email", DataTypeEnum.adVarWChar, 100)
                End With
            End With
    
            Dim FKey As New Key
            With FKey
                .Name = "ContactFKey"
                .Type = KeyTypeEnum.adKeyForeign
                .RelatedTable = "ClientDetails"
                .DeleteRule = RuleEnum.adRICascade
                .UpdateRule = RuleEnum.adRICascade
                .Columns.Append("ClientID")
                .Columns("ClientID").RelatedColumn = "ClientID"
            End With
    
            tbClientContact.Keys.Append(FKey)
    
            cat.Tables.Append(tbClientContact)




    2009年9月27日 14:23

答案

  • 好像问题不是这样的。不论创建表的顺序是怎样的,标的排序是按照字母顺序的。这个和列不一样。 但是能不能自定义表的排列顺序呢?有没有高人提示一下。先谢过。
    2009年9月28日 12:28