【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,phyPath4 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 = Nothing10 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 = TBName10 " 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 well13 Dim col " As ADOX.Column14 Set col = Server.CreateObject("ADOX.Column")15 With col16 ParentCatalog = catDB17 .Type = adInteger18 .Name = "ID"19 .Properties("Autoincrement") = True20 End With21 " Now add the rest of the columns22 With tblNew23 " Create fields and append them to the24 " Columns collection of the new Table object.25 With .Columns26 .Append "NumberColumn", adInteger27 .Append "FirstName", adVarWChar28 .Append "LastName", adVarWChar29 .Append "Phone", adVarWChar30 .Append "Notes", adLongVarWChar31 End With3233 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 136 adColNullable = 237 With .Columns("FirstName")38 .Attributes = adColNullable39 End With40 End With41 " Add the new Table to the Tables collection of the database.42 catDB.Tables.Append tblNew43 Set col = Nothing44 Set tblNew = Nothing45 Set catDB = Nothing46 End Sub
然后,可以在需要的地方调用:
1" First call the Create Database method 2 CreateAccessDB DBName34 " Then add a table and columns to this database5 CreateAccessTB DBName