如何用ADO如何取得数据库中表的字段信息

谢谢
---------------------------------------------------------------

ActualSize属性:字段的实际大小。
DefinedSize属性:定义字段的大小。
Type属性:字段类型,使用以下数字代表之:
文字text:200
日期时间date:135
整数int/识别码:3
单精准度:4
双精准度:5
备注memo:201
是否yes/no:17
Name属性:字段名称。
NumericScale属性:字段小数部份的位数。
Precision属性:字段的整数和小数位数部份加起来的最多位数。
取得数据库中表的字段信息例子

让我们看一个在ASP程式码当中使用ActualSize/DefinedSize/ Type/Name/NumericScale/Precision的例子。

譬如ASP程式码rs2.asp如下:

 1   
 2  
 3Set conn1 = Server.CreateObject("ADODB.Connection")   
 4  
 5conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"   
 6  
 7Set rs1 = Server.CreateObject("ADODB.Recordset")   
 8  
 9rs1.Open "产品",conn1,1,3   
10  
11Response.Write "text

<br/>

1"   
2  
3Response.Write "ActualSize: " & rs1("名称").ActualSize & "

<br/>

1"   
2  
3Response.Write "DefinedSize: " &rs1("名称").DefinedSize & "

<br/>

1"   
2  
3Response.Write "Type: " & rs1("名称").Type & "

<br/>

1"   
2  
3Response.Write "Name: " & rs1("名称").Name & "

<br/>

1"   
2  
3Response.Write "NumericScale: " & rs1("名称").NumericScale & "

<br/>

1"   
2  
3Response.Write "Precision: " & rs1("名称").Precision & "

<p>"

Response.Write "date<br/>"

Response.Write "ActualSize: " &amp; rs1("日期").ActualSize &amp; "<br/>"

Response.Write "DefinedSize: " &amp; rs1("日期").DefinedSize &amp; "<br/>"

Response.Write "Type: " &amp; rs1("日期").Type &amp; "<br/>"

Response.Write "Name: " &amp; rs1("日期").Name &amp; "<br/>"

Response.Write "NumericScale: " &amp; rs1("日期").NumericScale &amp; "<br/>"

Response.Write "Precision: " &amp; rs1("日期").Precision &amp; "<p>"

Response.Write "int/识别码<br/>"

Response.Write "ActualSize: " &amp; rs1("价格").ActualSize &amp; "<br/>"

Response.Write "DefinedSize: " &amp; rs1("价格").DefinedSize &amp; "<br/>"

Response.Write "Type: " &amp; rs1("价格").Type &amp; "<br/>"

Response.Write "Name: " &amp; rs1("价格").Name &amp; "<br/>"

Response.Write "NumericScale: " &amp; rs1("价格").NumericScale &amp; "<br/>"

Response.Write "Precision: " &amp; rs1("价格").Precision &amp; "<p>"

Response.Write "memo<br/>"

Response.Write "ActualSize: " &amp; rs1("备注").ActualSize &amp; "<br/>"

Response.Write "DefinedSize: " &amp; rs1("备注").DefinedSize &amp; "<br/>"

Response.Write "Type: " &amp; rs1("备注").Type &amp; "<br/>"

Response.Write "Name: " &amp; rs1("备注").Name &amp; "<br/>"

Response.Write "NumericScale: " &amp; rs1("备注").NumericScale &amp; "<br/>"

Response.Write "Precision: " &amp; rs1("备注").Precision &amp; "<p>"

Response.Write "yes<br/>"

Response.Write "ActualSize: " &amp; rs1("删除").ActualSize &amp; "<br/>"

Response.Write "DefinedSize: " &amp; rs1("删除").DefinedSize &amp; "<br/>"

Response.Write "Type: " &amp; rs1("删除").Type &amp; "<p>"

 1  
 2以上的 ASP程式码rs2.asp,於用户端使用浏览器,浏览执行的结果,显示各字段的字段信息,包括字段实际大小(ActualSize)、定义的字段大小(DefinedSize)、字段类型(Type)、字段名称(Name)、字段小数部份的位数(NumericScale)、整数和小数位数最多位数(Precision)等。   
 3  
 4Attributes/State属性   
 5  
 6若要取得更详细的数据库中表的字段信息,譬如此字段是否包括固定长度的资料、可接受Null的资料值、是否为自动编号的识别码等,由以下RecordSet对象的属性可得知:   
 7  
 8Field对象的Attributes属性:代表字段的状态,由以下值相加:   
 9&amp;H00000002:此字段为memo类型。   
10&amp;H00000004:此字段可写入资料。   
11&amp;H00000008:不确定此字段是否可写入资料。   
12&amp;H00000010:此字段包括固定长度的资料。   
13&amp;H00000020:此字段可接受Null的资料值。   
14&amp;H00000040:可能读取到此字段为Null的资料值。   
15&amp;H00000080:此字段为长位元(long binary)字段,可使用AppendChunk和GetChunk方法。   
16&amp;H00000100:此字段包括自动编号的识别码。   
17&amp;H00000200:此字段包括日期时间。   
18&amp;H00001000:此字段使用cache。   
19Connection 对象的Attributes属性:代表数据库连线的状态,由以下值相加,预设值为0:   
20&amp;H00020000:正在呼叫CommitTrans。   
21&amp;H00020000:正在呼叫RollbackTrans。   
22State属性:显示对象的状态:   
230:对象已经关闭。   
241:对象已经开启。   
25让我们看一个於ASP程式码当中使用Attributes/State属性的例子。   
26  
27譬如ASP程式码rs17.asp如下:   
28  

Set conn1 = Server.CreateObject("ADODB.Connection")

conn1.Open "DBQ="&amp; Server.MapPath("ntopsamp.mdb") &amp;";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

Response.Write "<br/>conn1.Attributes: " &amp; conn1.Attributes

Response.Write "<br/>conn1.State: " &amp; conn1.Attributes

Set rs2 = Server.CreateObject("ADODB.Recordset")

rs2.Open "产品",conn1,1,1

For Each fld In rs2.Fields

Response.Write "<br/>" &amp; fld.Name &amp; "=" &amp; hex(fld.Attributes)

Next

1  
2以上的 ASP程式码rs17.asp,於用户端使用浏览器,浏览执行的结果,For Each fld In rs2.Fields取得所有字段的讯息。显示:   
3  
4字段类型为文字text字段、日期时间date 字段、整数int字段、备注memo字段,为可写入资料(&amp;H00000004)、可接受Null的资料值(&amp;H00000020)、可能读取到此字段为Null的资料值(&amp;H00000040)。   
5字段类型为日期时间date 字段、整数int字段,为固定长度的资料(&amp;H00000010)。   
6字段类型为备注memo字段,为长位元(long binary)字段(&amp;H00000040)。</p></p></p></p></p>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus