vbs adox提取数据库表名和列名的类

时间:2021-05-23

<!--#includevirtual="/include/conn.inc"-->
<%
'*********************************
'*classname:ADOXDBOPR
'*制作人:刘晓逸
'*作用:用adox进行数据库的操作
'*版本:1.0
'*www.jb51.net
'**********************************
ClassADOXDBOPR

dimobjADOX

PrivateSubClass_Initialize
SetobjADOX=Server.CreateObject("ADOX.Catalog")
endsub

PublicPropertyletConnection(objCONN)
objADOX.ActiveConnection=objCONN
EndProperty

publicfunctionarrTName
dimarrTNames()
dimi:i=1
foreachobjtabinobjADOX.tables
ifobjtab.type="TABLE"then
redimPreservearrTNames(i)
arrTNames(i-1)=objtab.name
i=i+1
endif
next
arrTName=arrTNames
endfunction

publicfunctionarrfinfo(szTName)
dimarrf()
SetobjTAdox=objADOX.tables.item(szTName)
fori=0toobjTAdox.columns.count-1
SetdicInfo=Server.CreateObject("Scripting.Dictionary")
redimpreservearrf(i+1)
dicInfo.add"name",objTAdox.columns.Item(i).name
dicInfo.add"type",type_int2str(objTAdox.columns.Item(i).type)
Setarrf(i)=dicInfo
SetdicInfo=nothing
next
arrfinfo=arrf
endfunction

publicsubdel_table(szTName)
objADOX.tables.deleteszTName
EndSub

publicsubadd_table(szTName)
Setobj_tab=Server.CreateObject("ADOX.Table")
obj_tab.Name=szTName
Setobj_tab.ParentCatalog=objADOX
objADOX.tables.Appendobj_tab
Setobj_tab=nothing
EndSub

publicsubdelColumns(arrColumns,szTName)
Setobj_tab=objADOX.tables.item(szTName)
ifisarray(arrColumns)then
fori=0toubound(arrColumns)
obj_tab.columns.deletearrColumns(i)
next
else
obj_tab.columns.deletearrColumns
endif
endsub

publicsubadd_columns(arrColumns,szTName)
SetobjTab=objADOX.tables.item(szTName)
fori=0toubound(arrColumns)
objTab.columns.appendarrColumns(i,0),arrColumns(i,1),arrColumns(i,2)
next
endsub

functiontype_int2str(int_value)
selectcaseint_value
case3:
type_int2str="数字"
case202:
type_int2str="文本"
caseelse:
type_int2str=int_value
endselect
endfunction

PrivateSubClass_Terminate
SetobjADOX=nothing
EndSub

Endclass
%>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章