首先调用adodb.connection对象中的openSchema函数,这样会得到一个Recordset,其中每一条纪录对应着数据库中的一张表,纪录的每个字段包含了对应表的某方面信息。其中TABLE_NAME字段包含了对应表的名称可以把本功能写成一个函数,函数的处理过程描述如下:
首先调用adodb.connection对象中的openSchema函数,这样会得到一个Recordset,其中每一条纪录对应着数据库中的一张表,纪录的每个字段包含了对应表的某方面信息。其中TABLE_NAME字段包含了对应表的名称
然后遍历这个Recordset,如果当前纪录的TABLE_NAME字段的值和要查找的表的名字一样,证明要查找的表存在。
函数如下所示:
复制代码代码如下:
function check_gived_DataTable_exist_or_not(connect_object,name_of_gived_DataTable)
Do_gived_DataTable_exist=false
Const adSchemaTables=20 '表明想要得到数据库中表(table)和视图(view)的集合
set RecordSet_about_table_and_view_in_DataBase=connect_object.openSchema(adSchemaTables)
Do Until RecordSet_about_table_and_view_in_DataBase.EOF
if RecordSet_about_table_and_view_in_DataBase(TABLE_TYPE)=TABLE then
if RecordSet_about_table_and_view_in_DataBase(TABLE_NAME)= name_of_gived_DataTable then
Do_gived_DataTable_exist=true
exit do
end if
end if
RecordSet_about_table_and_view_in_DataBase.movenext
Loop
check_gived_DataTable_exist_or_not=Do_gived_DataTable_exist
end function
注释:
connect_object.openSchema(adSchemaTables)这个函数执行后,会得到数据库中表(table)和视图(view)的集合,这是一个ADODB.Recordset类型的数据。
if RecordSet_about_table_and_view_in_DataBase(TABLE_TYPE)=TABLE这句话把检查范围缩小为表(table)。