<?xml version="1.0" encoding="UTF-8"?>
<component>
<registration progid="asfman.createTable" classid="{11223344-aabb-ccdd-eeff-012345678901}" description="创建数据库表" version="1">
<script language="VBScript">
<![CDATA[
Function Register
MsgBox "数据库表组件注册成功!",0,"注册信息"
End Function
Function UnRegister
MsgBox "数据库表组件卸载成功!",0,"卸载信息"
End Function
]]>
</script>
</registration>
<public>
<property name="Name" dispid="0" description="组件名称">
<get internalName="componentName" />
</property>
<method name="createTable">
<parameter name="connStr" description="数据库名字" />
<parameter name="tName" description="表名" />
<parameter name="config" description="一个对象包含字段名字和类型" />
<parameter name="bFlag" description="boolean值,true为创建新的数据库,默认数据库已经存在" />
</method>
</public>
<implements type="ASP"/>
<script language="Javascript">
<![CDATA[
function componentName()
{
return "数据库表组件!"
}
var ColumnType = {
"SmallInt" : 2, // 整型
"Int" : 3, // 长整型
"Real" : 4, // 单精度型
"Float" : 5, // 双精度型
"Money" : 6, // 货币
"DateTime" : 7, // 日期时间
"Bit" : 11, // 是否
"TimeStamp" : 13,
"TinyInt" : 17, // 字节
"UniqueIdentifier" : 72, // 同步复制 ID
"Binary" : 128,
"Char" : 129,
"NChar" : 130,
"Decimal" : 131, // 小数
"Date" : 133,
"SmallDateTime" : 135,
"VarChar" : 202, // 文本
"Text" : 203, //备注(200 sql varchar 201 sql text)
"Binary" : 204, // 二进制数据
"Image" : 205 // OLE 对象
}
function enumDataType(strType)
{
strType = strType.toLowerCase();
for(var x in ColumnType)
{
if(x.toLowerCase() == strType) return ColumnType[x];
}
return 128;
}
function createTable(connStr,tName,config,bFlag)
{
var oCatalog = new ActiveXObject("AdoX.Catalog");
bFlag ? oCatalog.Create("Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + connStr) : (oCatalog.ActiveConnection="Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + connStr);
var oTable = new ActiveXObject("AdoX.Table");
oTable.Name = tName;
oTable.ParentCatalog = oCatalog;
oTable.Columns.Append("id",3);
oTable.Columns("id").Properties("AutoIncrement") = true;
for(var i in config)
{
if(config.hasOwnProperty(i))
{
oTable.Columns.Append(i,enumDataType(config[i]));
}
}
oCatalog.Tables.Append(oTable);
oCatalog.ActiveConnection.Close();
oCatalog = null;
}
]]>
</script>
<comment>
示例:createTable("fk.mdb","fk3",{name:"varchar",value:"Text"},false);
</comment>
</component>
posted on 2007-11-14 16:44
汪杰 阅读(344)
评论(0) 编辑 收藏 引用 所属分类:
asp(javascrpt)