如何获得指定Access数据库的所有表的表名

Aspist 2002-03-04 03:07:51
我想在ASP中用下面的代码获得文件名为xjb.mdb 的Access数据库的表名
<%
set conn =server.CreateObject("ADODB.Connection")
set rstSchema=server.CreateObject("ADODB.Recordset")
conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=d:\xjb.mdb"
rstSchema = conn.OpenSchema(adSchemaTables)
Do Until rstSchema.EOF
Response.Write "Table name: "&rstSchema("TABLE_NAME") & vbCr
Response.Write "Table type: "&rstSchema("TABLE_TYPE") & vbCr
rstSchema.MoveNext
Loop
%>
出现下面的错误:
错误类型:
ADODB.Connection (0x800A0CB3)
/hanjia/test2.asp, 第 5 行
错误原因:Object or provider is not capable of performing requested operation.
但类似的代码在vb中却没有问题,是"IUSR_机器名"帐号没有此权限吗?可我把它换成管理员的帐号也不行,如何在ASP中解决此问题?
...全文
104 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
flash22cn 2002-03-07
  • 打赏
  • 举报
回复
Aspist(边城浪子) :
真是不幸!
我也出过这种错误!
Aspist 2002-03-05
  • 打赏
  • 举报
回复
真丢人呀,我竟然在rstSchema = conn.OpenSchema(adSchemaTables)忘了加set,加上就好了,谢谢大家.
iStringTheory 2002-03-05
  • 打赏
  • 举报
回复
<%
strConn="DBQ="+server.mappath("kendylan.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set objConn=server.createobject("Adodb.connection")
objConn.open strConn
set rsSchema=objConn.openSchema(20)
rsSchema.movefirst
Do Until rsSchema.EOF
if rsSchema("TABLE_TYPE")="TABLE" then
response.write rsSchema("TABLE_NAME") & "<br>"
end if
rsSchema.movenext
Loop
set objConn=nothing
%>
flash22cn 2002-03-05
  • 打赏
  • 举报
回复
Yes!
spacener(空间) is right!!!
蓝诺 2002-03-05
  • 打赏
  • 举报
回复
<%'---------------读access库中的表名-------------------------
SET Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("库名称")
Set rstSchema=Conn.OpenSchema(20)

Do Until rstSchema.EOF
Response.Write "Table name:"&rstSchema(2)&"<br>"&"Table type:"&rstSchema(3)&"<br><br>"
rstSchema.MoveNext
Loop
%>
<%'---------------读sql server库中的表名-------------------------
SET Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "Server=IP地址;Provider=sqloledb;Database=库名称;UID=用户名;PWD=密码;"
Set rstSchema=Conn.OpenSchema(20)

Do Until rstSchema.EOF
Response.Write "Table name:"&rstSchema(2)&"<br>"&"Table type:"&rstSchema(3)&"<br><br>"
rstSchema.MoveNext
Loop
%>

<%'---------------读oracle库中的表名-------------------------
SET Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=MSDAORA.1;Password=密码;User ID=用户名;Data Source=数据源名称"
Set rstSchema=Conn.OpenSchema(20)

Do Until rstSchema.EOF
Response.Write "Table name:"&rstSchema(2)&"<br>"&"Table type:"&rstSchema(3)&"<br><br>"
rstSchema.MoveNext
Loop
%>
只要用相应的数据库代替以上的中文就可以
karma 2002-03-05
  • 打赏
  • 举报
回复
show us the error messages then
flash22cn 2002-03-05
  • 打赏
  • 举报
回复
关注!!!
flash22cn 2002-03-05
  • 打赏
  • 举报
回复
我也试过了,
还是出现问题。

问题还没解决呢!
karma 2002-03-04
  • 打赏
  • 举报
回复
also change
vbCr
to
Chr(13) & Chr(10)
karma 2002-03-04
  • 打赏
  • 举报
回复
also change
vbCr
to
chr(13) & chr(10)
karma 2002-03-04
  • 打赏
  • 举报
回复
try

<%
set conn =server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=d:\xjb.mdb"
set rstSchema = conn.OpenSchema(20)
Do while not rstSchema.eof
Response.Write "Table name: "& rstSchema("TABLE_NAME") & vbCr
Response.Write "Table type: "& rstSchema("TABLE_TYPE") & vbCr
rstSchema.MoveNext
Loop
%>
Aspist 2002-03-04
  • 打赏
  • 举报
回复
我觉得 karma(无为)讲的很有道理,我在VB里把adSchemaTables打印出来看了一下确实是20,所以代码改成如下:
<%
set conn =server.CreateObject("ADODB.Connection")
set rstSchema=server.CreateObject("ADODB.Recordset")
conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=d:\xjb.mdb"
rstSchema = conn.OpenSchema(20)
Do while not rstSchema.eof
Response.Write "Table name: "&rstSchema("TABLE_NAME") & vbCr
Response.Write "Table type: "&rstSchema("TABLE_TYPE") & vbCr
rstSchema.MoveNext
Loop
%>
但错误却更加奇怪了:
Microsoft VBScript 运行时错误 (0x800A01B6)
/hanjia/test2.asp, 第 6 行
错误原因:对象不支持此属性或方法: 'rstSchema.eof'
百思不得其解,请指教.
karma 2002-03-04
  • 打赏
  • 举报
回复
sure, you can, but apparently, Aspist (边城浪子) did not include the definition for adSchemaTables
纪俊 2002-03-04
  • 打赏
  • 举报
回复
set rstSchema = conn.OpenSchema(adSchemaTables)不行吗?
karma 2002-03-04
  • 打赏
  • 举报
回复
set rstSchema = conn.OpenSchema(20)

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧