| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 495 人关注过本帖
标题:关于库中的表名是否存在的判断问题
只看楼主 加入收藏
PHP
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-5-26
收藏
 问题点数:0 回复次数:8 
关于库中的表名是否存在的判断问题
怎么样判断一个ACCESS数据库如:库名为BBS.MDB
中的某个表是否存在????

如想知道BBS.MDB中含有哪些表名??给出一个表名如USER,是否在该库中存在这个表,

应用什么ASP语句呢???在线急等
搜索更多相关主题的帖子: 判断 
2006-06-12 13:31
hangxj
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2045
专家分:0
注 册:2006-4-10
收藏
得分:0 

好像我以前有发过吧

原文在这
http://www.bc-cn.net/bbs/dispbbs.asp?BoardID=10&replyID=177091&id=70911

希望版主可以加精

现在再发一次好了


[QUOTE]<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
rem x=0 表示不存在,x=1 表示存在
strConn="DBQ="+server.mappath("date/test.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set objConn=server.createobject("Adodb.connection")
objConn.open strConn
set rsSchema=objConn.openSchema(20)
rsSchema.movefirst
tablename="test"
x=0
Do Until rsSchema.EOF
if rsSchema("TABLE_TYPE")="TABLE" then
if rsSchema("TABLE_NAME")=tablename then
x=1
exit do
end if
end if

rsSchema.movenext
Loop
if x=0 then response.write"没有找到!!!"
if x=1 then response.write"找到了"

set objConn=nothing
%> [/QUOTE]


[此贴子已经被作者于2006-6-12 14:11:03编辑过]


http://www./
2006-06-12 14:07
PHP
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-5-26
收藏
得分:0 
十分感谢您的解答!

请问set rsSchema=objConn.openSchema(20) 这句什么意思???

能把这段代码讲一讲吗??

我有点吃不消!!!
2006-06-12 14:10
hangxj
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2045
专家分:0
注 册:2006-4-10
收藏
得分:0 
OpenSchema 方法返回与数据源有关的信息,例如关于服务器上的表以及表中的列等信息

http://www./
2006-06-12 14:15
PHP
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-5-26
收藏
得分:0 

openschema(20)中的(20)是什么意思呢???

if rsSchema("TABLE_TYPE")="TABLE" then
if rsSchema("TABLE_NAME")=tablename then
x=1
exit do

以上这段我大体能看懂了,可是细节的地方:rsschema("Table_type")="table"这句是什么意思,好像是表类型等于 什么 的时就进行表名称的判断,

那个"TABLE"是指什么???就是表吗???

2006-06-12 14:26
hangxj
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2045
专家分:0
注 册:2006-4-10
收藏
得分:0 
以下是引用PHP在2006-6-12 14:26:24的发言:

openschema(20)中的(20)是什么意思呢??? '这的20是指要读取的是表

if rsSchema("TABLE_TYPE")="TABLE" then '如果所得到的类型为表的话
if rsSchema("TABLE_NAME")=tablename then 与所要找的表名比较
x=1
exit do

以上这段我大体能看懂了,可是细节的地方:rsschema("Table_type")="table"这句是什么意思,好像是表类型等于 什么 的时就进行表名称的判断,

那个"TABLE"是指什么???就是表吗???


http://www./
2006-06-12 14:33
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 

回复6楼,其实Access数据库在建立一个数据库时会自动建立一些存储数据库信息的表,也就是系统表。这些表,一般在数据库中是看不见的,也就是数据库软件的默认设置不会列出系统表。
用户每天加一个表,系统表里就会自动多出一条数,因为系统表里不光有table所以得用判断来确定该内容是table,而不是其它的系统信息。

2006-06-12 21:40
hu_sir
Rank: 1
等 级:新手上路
帖 子:208
专家分:0
注 册:2004-4-29
收藏
得分:0 

毕业设计正用的上,呵呵,谢谢了。

2006-06-12 21:44
hangxj
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2045
专家分:0
注 册:2006-4-10
收藏
得分:0 
明白呀,所以才会有
openschema(20)
这的参数有很多呀,所以要看你想找什么了
具体的参数我现在也记不住
好像是 -1 到29吧
其中 Const adSchemaTables = 20

http://www./
2006-06-13 09:06
快速回复:关于库中的表名是否存在的判断问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021261 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved