分享

怎么在用asp代码来创建Access数据库

 cyx_188 2017-04-21

【IT168技术文档】

  尽管我们可以通过设计器来创建数据库, 但是我们也可以在asp的代码中创建数据库,这里我们就一起来看一下如何在asp中创建数据库.

  在ASP中创建数据库,我们需要用到ADOX(Microsoft ADO Extensions for DDL and Security), 这个ADO的扩展可以帮助我们创建和修改数据库结构信息, 也包括数据库对象的安全策略. 它随着ADO 2.1 出现, 所以它能够在大多数的Windows平台上工作. 您可以到MS的官方网站去获取最新的ADO版本,当然,里边包括了ADOX.

  创建数据库

  在我们开始代码编写之前,确定IIS所对应的账号IUSER_[MachineName](MachineName:一般是你的计算机名) 拥有对您要创建数据库的目录有写入权限。你也可以打开要保存数据库文件的目录的属性对话框,找到安全选项,添加上述用户的写入权限。

  为了顺利创建数据库,我们首先需要创建一个空的数据库对象,然后我们才能创建一个新表和定义表的各列。这里有个重要的一点儿就是说,我们创建表的时候,必须在创建完数据库后关闭数据连接。否则我们将没有办法创建数据库和定义数据列。这就是为什么,我会在接下来创建两个方法:CreateAccessDB(创建数据库), CreateAccessTB(创建数据表),变量DBName用来定义要添加数据库的名字,phyPath用来定义存放数据库文件的路径。下边我们来看代码:
1<!--#include virtual="/Includes/adovbs.inc"--> 2<% 3 Dim DBName,phyPath 4 DBName= "DB.mdb" 5 phyPath=Server.Mapath(DBName) 6 DTName="Contacts"
  这段代码包含了一个adovbs.inc文件,这是个非常有用的文件,它定义了ADO和ADOX中用到的所有数值型变量,你可以在代码中找到该文件,也可以去你自己电脑上:C:\Program Files\Common Files\System\ado下找到。如果需要在你的页面中间引用,需要复制到网站自己的目录下边。
  下边是创建数据库的代码:
1Sub CreateAccessDB(DBToCreate) 2 Dim catNewDB ' As ADOX.Catalog 3 Set catNewDB = Server.CreateObject("ADOX.Catalog") 4 catNewDB.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 5 "Data Source=" & Server.Mapath(DBToCreate) & _ 6 ";Jet OLEDB:Engine Type=5;" 7 ' Engine Type=5 = Access 2000 Database 8 ' Engine Type=4 = Access 97 Database 9 Set catNewDB = Nothing 10 End Sub
  数据库创建完了,接下来该表了,否则我们要一个没有表的数据库是毫无意义的。下边是创建表的代码:
1 Sub CreateAccessTB(DBToCreate) 2 Dim catDB ' As ADOX.Catalog 3 Set catDB = Server.CreateObject("ADOX.Catalog") 4 ' Open the catalog 5 catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 6 "Data Source=" & Server.Mapath(DBToCreate) 7 Dim tblNew ' As ADOX.Table 8 Set tblNew = Server.CreateObject("ADOX.Table") 9 tblNew.Name = TBName 10 ' First Create an Autonumber column, called ID. 11 ' This is just for demonstration purposes. 12 ' You could have done this below with all the other columns as well 13 Dim col ' As ADOX.Column 14 Set col = Server.CreateObject("ADOX.Column") 15 With col 16 ParentCatalog = catDB 17 .Type = adInteger 18 .Name = "ID" 19 .Properties("Autoincrement") = True 20 End With 21 ' Now add the rest of the columns 22 With tblNew 23 ' Create fields and append them to the 24 ' Columns collection of the new Table object. 25 With .Columns 26 .Append "NumberColumn", adInteger 27 .Append "FirstName", adVarWChar 28 .Append "LastName", adVarWChar 29 .Append "Phone", adVarWChar 30 .Append "Notes", adLongVarWChar 31 End With 32 33 Dim adColNullable ' Is not defined in adovbs.inc, 34 ' so you need to define it here. 35 ' The other option is adColFixed with a value of 1 36 adColNullable = 2 37 With .Columns("FirstName") 38 .Attributes = adColNullable 39 End With 40 End With 41 ' Add the new Table to the Tables collection of the database. 42 catDB.Tables.Append tblNew 43 Set col = Nothing 44 Set tblNew = Nothing 45 Set catDB = Nothing 46 End Sub
  然后,可以在需要的地方调用:
1' First call the Create Database method 2 CreateAccessDB DBName 3 4 ' Then add a table and columns to this database 5 CreateAccessTB DBName

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多