ASP如何读取ACCESS中字段说明? ASP 如何读取ACCESS数据库的字段类型!!?

ASP\u5982\u4f55\u5b9e\u73b0\u8bfb\u53d6\u5e76\u4e14\u663e\u793aACCESS

\u7ed9\u4f60\u4e00\u4e2a\u8f93\u51fa\u6570\u636e\u5e93\u4e2d\u56fe\u7247\u7684\u4ee3\u7801
\u4ee3\u7801\u4e2d\u7684admin\u8868\u4e2d\u7684username\u5c31\u662f\u4e0a\u4f20\u7684\u957f\u4e8c\u8fdb\u5236\u6570\u56fe\u7247,\u4f60\u6839\u636e\u4f60\u7684\u4ee3\u7801\u4fee\u6539\u4e00\u4e0b\u8868\u540d\u548c\u5b57\u6bb5\u540d,\u8fd8\u6709\u6570\u636e\u5e93\u8def\u5f84,\u8bd5\u4e00\u4e0b\u5427.
\u4ee3\u7801\u4e2d\u4e00\u5b9a\u8981\u6709 Response.ContentType = "image/*" \u8fd9\u4e00\u884c,\u5982\u679c\u6ca1\u6709\u8fd9\u4e2a,\u5c06\u663e\u793a\u4e0d\u51fa\u56fe\u7247,\u800c\u53ea\u662f\u8def\u5f84

<%
set conn=server.createobject("adodb.connection")
conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &server.mappath("test.mdb")
set rec=server.createobject("ADODB.recordset")
strsql="select username from admin order by id desc"
rec.open strsql,conn,1,1
Response.ContentType = "image/*"
Response.BinaryWrite rec("username").getChunk(7500000)
rec.close
set rec=nothing
set conn=nothing
%>

\u53e6\u5916\u63d0\u4f9b\u4e00\u4e2a\u4e0a\u4f20\u56fe\u7247\u5230\u6570\u636e\u5e93\u957f\u4e8c\u8fdb\u5236\u5b57\u6bb5\u4e2d\u7684\u4ee3\u7801
index.html







<form name="mainForm" enctype="multipart/form-data"

action="process.asp" method=post>














process.asp

<%
response.buffer=true
formsize=request.totalbytes
formdata=request.binaryread(formsize)
bncrlf=chrB(13) & chrB(10)
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf & bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)

set conn=server.createobject("adodb.connection")
conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &server.mappath("test.mdb")
set rec=server.createobject("ADODB.recordset")
rec.Open "SELECT * FROM admin where id is null",conn,1,3
rec.addnew
rec("username").appendchunk mydata
rec.update
rec.close
%>
<%
rec.open("select top 1 username from admin order by id desc"),conn,1,1
if not(rec.eof and rec.bof) then
%>
\u6700\u65b0\u4e0a\u4f20\u7684\u56fe\u7247\u662f\uff1a
<%
end if
rec.close
set rec=nothing
set conn=nothing
%>

ASP\u5148\u521b\u5efa\u4e00\u4e2aadodb.Rrcorddest\u5bf9\u8c61,\u6bd4\u5982set rs=server.createobject("adodb.Rrcorddest")
SQL="sql\u8bed\u53e5"
\u7136\u540ers.open sql
\u518d\u7528\u4e00\u4e2a\u5faa\u73af\u547d\u4ee4
if not rs.eof then
rs.movefirst
do while not rs.eof
for i=0 to rs.fields.count
response.write (rs.fields(i).type)//\u8fd9\u4e2a\u5c31\u662f\u5199\u51fa\u5b57\u6bb5\u7684\u7c7b\u578b\u4e86
next
rs.movenext
loop
end if
\u662f\u8fd9\u6837\u7684 type\u786e\u5b9e\u5b57\u6bb5\u7c7b\u578b
\u4e0d\u8fc7\u4ed6\u662f\u4ee5\u6570\u5b57\u6765\u8bf4\u660e\u7684
\u6bd4\u5982\u5728SQL\u91cc 200\u4ee3\u8868varchar
129\u4ee3\u8868char
11\u4ee3\u8868Bit(1\u62160\u7684\u6574\u6570\u6570\u636e)
\u6240\u4ee5\u4f60\u60f3\u663e\u793a\u4f60\u90a3\u6837\u7684\u7ed3\u679c\u5c31\u5148\u5f97\u4e86\u89e3TYPE\u663e\u793a\u7684\u76f4\u4ee3\u8868\u4ec0\u4e48\u7c7b\u578b
\u7136\u540e\u7528if\u8bed\u53e5
if(rs.fields(i).type=200) then
response.write("varchar")
end if

1.asp如何获取access数据库的字段说明代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>提取access字段的说明信息</title>
</head>
<%
dim table
table = trim(request("t1"))
database=trim(request("d1"))
%>
<body>
<form method="POST" action="">
数据文件名:<input type="text" name="D1" size="40" value=<%response.write(database)%> >同目录下数据文件名称 如:database.mdb<br>
表......名:<input type="text" name="T1" size="40" value=<%response.write(table)%> >database.mdb中的表名<br>
<input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2">
</form>

<%
if table = "" then
response.write("post nothing")
else%><%
dim conn
dim connstr
on error resume next
connstr="PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source="+server.mappath(database)+";"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
response.write(connstr+"<br>")
dim sql
dim rs
sql="select * from "+table+""
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,2
response.write(sql+"<br>")

If rs.State = adStateOpen Then
cnnState = "open"
Else
cnnState = "closed"
End If
response.write(cnnState +"<br>")
response.write("列数:"+cstr(rs.fields.count)+"<br>")

For i=0 to rs.fields.count-1
Response.Write "<TH>"+ rs(i).Name +"</TH>;<br>"
Next

Dim MyTableName
Dim MyFieldName

Dim MyDB
set mydb=server.createobject("adox.catalog")
Dim MyTable
set mytable=server.createobject("adox.table")
Dim MyField
set myfield =server.createobject("adox.column")
Dim pro

On Error resume next

MyDB.ActiveConnection =conn

For Each MyTable In MyDB.Tables
For Each MyField In MyTable.Columns
'response.write "FieldName:" & FieldType(MyField.Type) & " FieldSize:" & MyField.DefinedSize 'FieldType(pro.Type)
'response.write table & "." & MyField.name &":" '呵呵这里有变动,以前的有误
response.write MyTable.name & "." & MyField.name &":" '呵呵这里有变动,以前的有误
For Each pro In MyField.Properties
if pro.name="Description" and pro.Value <> "" then response.write pro.Value & " <br> " 'MyTable.Name & " : " & MyField.Name & " : " & pro.Name & " : " & pro.Value
Next
Next
Next

rs.close()
conn.close()
end if
%>

</body>

</html>

用ADOX,百度百科一下有详细说明

另外,用ACCESS自带的VBA可以实现这个功能。

关键是引用ado.ext 控件,我不知道asp默认是不有安装了这个控件。

网上找到两个例子资料给你参考:

<%@ Language=VBScript %>
<%
'------- 利用ADOX取得Access中字段的说明 ---------------
Function OpenConnectionWithString(strMDBPath, strTableName, strColName)

Dim cat

Set cat = server.CreateObject("ADOX.Catalog")

cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & strMDBPath
OpenConnectionWithString = cat.Tables(strTableName).Columns(strColName).Properties("Description").Value

Set cat = Nothing
End Function

response.Write OpenConnectionWithString(server.MapPath("./数据库名称.mdb"), "表名称", "目标字段名称")
%>

'自己把自己的数据路径填写好,写好表名 和 目标字段名
************************************************************************************************
利用ADOX获取Access数据库字段的所有属性

2010-03-01 16:57:46| 分类: 微软VBA |字号 订阅
一直以来都用SQL语句来操作Access,但发现有些Access字段的属性不能用SQL来操作,在网上搜索了一些资料后,才了解了一些用ADOX设定字段的方法,为了方便了解这些字段的属性,就先自己建立一个Access数据库,然后创建好表与字段,设置好这字段的属性,然后后用下面的程序把它的属性例出到Excel中来,此程序需要引用ADOX。

Dim MyCat As ADOX.Catalog
Dim MyTab As ADOX.Table
Dim MyCol As ADOX.Column
Dim MyPro As ADOX.Property
Dim tSh As Worksheet
Dim i As Long
Dim DataName As String, PassStr As String, TableName As String

DataName = "Excel吧" '数据库名称
DataName = ThisWorkbook.Path & "\" & DataName & ".mdb"
If Dir(DataName) = "" Then
MsgBox "数据库:" & DataName & "不存在!"
Exit Sub
End If
PassStr = "" '数据库密码
TableName = "数据表2" '数据表名称

Set tSh = ThisWorkbook.Worksheets.Add
tSh.Range("A1:D1") = Array("字段名称", "字段类型", "字段属性", "属性值")

Set MyCat = New ADOX.Catalog
MyCat.ActiveConnection = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" & _
DataName & ";Jet OLEDB:Database Password=" & MyPass

Set MyTab = New ADOX.Table
Set MyTab = MyCat.Tables(TableName)
i = 2
For Each MyCol In MyTab.Columns
tSh.Cells(i, 1) = MyCol.Name
tSh.Cells(i, 2) = MyCol.Type
For Each MyPro In MyCol.Properties
tSh.Cells(i, 3) = MyPro.Name
tSh.Cells(i, 4) = MyPro.Value
i = i + 1
Next
Next
tSh.Cells.EntireColumn.AutoFit
MsgBox "字段信息读取完毕!", , "提示"
End Sub

请自己修改程序中的数据库名,密码与数据表名,路径为包含程序的Excel文件的目录中。

从程序的运行结果可以看到,列举的属性有:

0 Autoincrement 自动编号
1 Default 默认值
2 Description
3 Nullable 必填字段
4 Fixed Length
5 Seed
6 Increment
7 Jet OLEDB:Column Validation Text 有效性文本
8 Jet OLEDB:Column Validation Rule 有效性规则
9 Jet OLEDB:IISAM Not Last Column
10 Jet OLEDB:AutoGenerate
11 Jet OLEDB:One BLOB per Page
12 Jet OLEDB:Compressed UNICODE Strings
13 Jet OLEDB:Allow Zero Length 允许空字符串
14 Jet OLEDB:Hyperlink 超链接型

Access 好像不行啊

字段说明? 要读这个干嘛? ado引擎也许不读这个信息

  • ASP涓input value鍊濡備綍鑾峰彇access涓瀛楁鍊
    绛旓細 鏀逛负锛歳esponse.write ""
  • 璇烽棶ASP鎬庢牱璇诲彇Access鏁版嵁搴撲腑鏌愪釜琛ㄦ煇瀛楁鐨勫悕绉般佺被鍨嬨佹弿杩癬鐧惧害鐭 ...
    绛旓細杩欐牱灏辫浜,绠鍗曞惂!??< set conn=server.createobject("adodb.connection")conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("DATESFS.mdb")'鏁版嵁搴 > < exec="select * from tablename"'琛ㄥ悕 set rs=server.createobject("adodb.recordset")rs.open exec,conn,1,...
  • asp璋冪敤ACCESS琛ㄤ腑鐨勫唴瀹,骞舵樉绀轰竴閮ㄥ垎
    绛旓細鍐呭鏄剧ず宸﹁竟50涓瓧绗 < set rs=server.createobject("adodb.recordset")sql="select top 1 * from xw where bigclassname like '%瑙傜偣%' and bigclassname like '%鐭ヨ瘑%' order by time desc"rs.open sql,conn,1,1 if rs.eof then response.write "娌℃湁璁板綍"response.end else > 澶х被...
  • 鐢asp浠access涓鍙澶囨敞绫诲瀷瀛楁,鎬庢牱浣垮畠鐓у師鏉ョ殑鏍煎紡杈撳嚭?
    绛旓細Content = Replace(Request("Content"),Chr(13)&Chr(10),"")sql="insert into table values("& Content & "...)"set rs=...rs.open ...--- 涔熷氨鏄鏀惧湪浣犵殑鏁版嵁搴撴搷浣滆鍙ヤ箣鍓 --- 涔熷彲浠ュ湪杈撳嚭鐨勬椂鍊欑洿鎺 Response.Write ""& Rs("Content")& ""杩欎釜鍙鏍煎紡鍖栨爣绛撅紝鍙互鎶婂寘鍚湪...
  • ASP璋冪敤涓涓ACCESS涓鐨勪竴涓瓧娈
    绛旓細灏辫鍏堜竴鏉℃潯鐨勬暟鎹璇诲彇鍑烘潵鍦ㄨ繘琛屾搷浣.濡:< while(rs.read){ if(rs["id"]...){ > <a href="<%rs[""]=("link")%>"> < } } > 澶ф鐨勬濊矾鏄繖鏍.鍏蜂綋涓唬鐮佹槸鍚︽湁閿欐垜灏变笉娓呮浜..寰堜箙娌″仛杩asp鐨勪唬鐮佷簡..鐜板湪鎴戝仛asp.net鍘讳簡.....
  • 濡備綍asp鏌ヨACCESS涓鐨勬暟鎹
    绛旓細select * from TableName
  • asp鑳借皟鐢ACCESS鏁版嵁搴撹褰曠殑鏌愪釜瀛楁鍚?濡傛灉鑳,鎬庢牱瀹炵幇?鏈濂芥槸瀹炰緥璇...
    绛旓細conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("data\db1.mdb")> 杩炴帴鏃舵敞鎰忚矾寰勪笉瑕佹悶閿欎簡 鍐嶈皟鐢細< exec="select * from 琛1"set rs=server.createobject("adodb.recordset")rs.open exec,conn,1,1 >琛1鏄暟鎹簱DB1涓殑涓寮犺〃 鍐嶆樉绀哄嚭鏉ュ氨鍙互浜嗭細<%...
  • asp,鎬庝箞杩囨护access琛ㄤ腑鐨勭壒瀹氬瓧璇,
    绛旓細a=replace("鍖椾含甯","甯","")response.write a 缁撴灉灏辨槸鍖椾含锛屽叾浠栫殑涓鏍烽亾鐞嗐
  • 鍏充簬asp璇诲彇access鏁版嵁搴撻噷鐨勬暟鎹
    绛旓細<a href="/News/NewsShow.asp?NewsId=<%=rs("NewsId")%>" target="_blank"><%=Left(NewsTitle,26)%> <%=year(rs("AddTime"))&"-"&month(rs("AddTime"))&"-"&day(rs("AddTime"))%> < rs.movenext i=i+1 j=j-1 loop > <%filename="Index.asp"%> ...
  • 鍚ACCESS杈撳叆鏁板瓧鏁版嵁,ASP璇诲彇鎬庝箞杞崲鎴愭眽瀛?
    绛旓細if rs("瀛楁鍚")="1" then response.write "鎯呮劅鏂囩珷"if rs("瀛楁鍚")="2" then response.write "鐢熸椿闅忕瑪"...鎴栬 select case rs("瀛楁鍚")case "1"response.write "鎯呮劅鏂囩珷"case "2"response.write "鐢熸椿闅忕瑪"...end select ...
  • 扩展阅读:永久免费不收费的网页 ... 免费行情软件网站大全 ... 免费的网页入口 ... iphone看免费视频的app ... 免费网站在线观看人数在哪 ... 免费的舆情网站 ... windows7永久免费激活 ... 永久免费access自动跳转 ... 永久在线免费的云服务器 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网