欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

access数据库的一些少用操作,ASP,创建数据库文件,创建表,创建字段,ADOX

程序员文章站 2022-06-15 10:38:01
复制代码 代码如下:<%@language="vbscript" codepage="936"%> <% if trim(reques...
复制代码 代码如下:

<%@language="vbscript" codepage="936"%>
<%
if trim(request.form("tablename"))

'----设置 打开数据库连接
dbs="data source="+server.mappath("database.mdb")+";provider=microsoft.jet.oledb.4.0;"
set conn=server.createobject("adodb.connection")
conn.open dbs


'定义adox,指定连接
set adox =server.createobject("adox.catalog")
set adox.activeconnection = conn

'创建table,写入属性
set objtable= server.createobject("adox.table")
'objtable.name="table3"
objtable.name=trim(request.form("tablename"))' 表单获取
'objtable.parentcatalog = adox  

'定义第一个字段
set objcolumn = server.createobject("adox.column")
'set objcolumn.parentcatalog = adox
objcolumn.name="column1"
objcolumn.type=202 '数据类型202代表文本,
objcolumn.attributes=2  '1--必填字段,2--非必填
objtable.columns.append objcolumn
set objcolumn = nothing '清除第一个字段信息


'定义第二个字段
set objcolumn = server.createobject("adox.column")
'set objcolumn.parentcatalog = adox
objcolumn.name="column2"
objcolumn.type=3
objcolumn.attributes=2 
objtable.columns.append objcolumn
set objcolumn = nothing

adox.tables.append objtable

set adox = nothing


%>

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>建立表格和字段</title>
<style type="text/css">
<!--
body,td,th {
    font-size: 12px;
}
-->
</style></head>

<body>
<p>'使用<strong> column</strong> 对象的属性和集合,可以: <br />
  '使用 name 属性标识列。<br />
  '使用 type 属性指定列的数据类型。<br />
  '使用 attributes 属性确定列是否为固定长度,或者是否能包含 null 值。<br />
  '使用 definedsize 属性指定列的最大尺寸。<br />
  '对于数字数据值,使用 numericscale 属性指定范围。<br />
  '对于数字数据值,使用 precision 属性指定最大精度。<br />
  '使用 parentcatalog 属性指定列的父 catalog。<br />
  '对于键列,使用 relatedcolumn 属性指定相关表中相关列的名称。<br />
  '对于索引列,使用 sortorder 属性指定排序顺序是升序还是降序。</p>
<p>数据类型如下表:</p>
<table border=1 cellpadding=4 cellspacing=4 cols=4 frame=box rules=all width=100%>

<tr valign="top">
<th width=32%>常量</th>
<th width=13%>值</th>
<th width=55%>说明</th>
</tr>

<tr valign="top">
<td class=t width=32%><b>adarray<br>
</b>(不适用于 adox。)</td>
<td class=t width=13%>0x2000
<p class=t></p>
</td>
<td class=t width=55%>一个标志值,通常与另一个数据类型常量组合,指示该数据类型的数组。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adbigint</b>
<p class=t></p>
</td>
<td class=t width=13%>20</td>
<td class=t width=55%>指示一个八字节的有符号整数 (dbtype_i8)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adbinary</b>
<p class=t></p>
</td>
<td class=t width=13%>128</td>
<td class=t width=55%>指示一个二进制值 (dbtype_bytes)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adboolean</b>
<p class=t></p>
</td>
<td class=t width=13%>11</td>
<td class=t width=55%>指示一个布尔值 (dbtype_bool)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adbstr</b>
<p class=t></p>
</td>
<td class=t width=13%>8</td>
<td class=t width=55%>指示以 null 终止的字符串 (unicode) (dbtype_bstr)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adchapter</b>
<p class=t></p>
</td>
<td class=t width=13%>136</td>
<td class=t width=55%>指示一个四字节的子集值,标识子<a href="mddefrowset.htm">行集合</a>中的行 (dbtype_hchapter)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adchar</b>
<p class=t></p>
</td>
<td class=t width=13%>129</td>
<td class=t width=55%>指示一个字符串值 (dbtype_str)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adcurrency</b>
<p class=t></p>
</td>
<td class=t width=13%>6</td>
<td class=t width=55%>指示一个货币值 (dbtype_cy)。货币是一个定点数字,小数点右侧有四位数字。该值存储为八字节、范围为 10,000 的有符号整数。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>addate</b>
<p class=t></p>
</td>
<td class=t width=13%>7</td>
<td class=t width=55%>指示日期值 (dbtype_date)。日期保存为双精度数,数字的整数部分是从 1899 年 12 月 30 日算起的天数,小数部分是一天当中的片段时间。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>addbdate</b>
<p class=t></p>
</td>
<td class=t width=13%>133</td>
<td class=t width=55%>指示日期值 (yyyymmdd) (dbtype_dbdate)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>addbtime</b>
<p class=t></p>
</td>
<td class=t width=13%>134</td>
<td class=t width=55%>指示时间值 (hhmmss) (dbtype_dbtime)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>addbtimestamp</b>
<p class=t></p>
</td>
<td class=t width=13%>135</td>
<td class=t width=55%>指示日期/时间戳(yyyymmddhhmmss 加十亿分之一的小数)(dbtype_dbtimestamp)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>addecimal</b>
<p class=t></p>
</td>
<td class=t width=13%>14</td>
<td class=t width=55%>指示具有固定精度和范围的确切数字值 (dbtype_decimal)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>addouble</b>
<p class=t></p>
</td>
<td class=t width=13%>5</td>
<td class=t width=55%>指示一个双精度浮点值 (dbtype_r8)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adempty</b>
<p class=t></p>
</td>
<td class=t width=13%>0</td>
<td class=t width=55%>指定没有值 (dbtype_empty)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>aderror</b>
<p class=t></p>
</td>
<td class=t width=13%>10</td>
<td class=t width=55%>指示一个 32 位的错误代码 (dbtype_error)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adfiletime</b>
<p class=t></p>
</td>
<td class=t width=13%>64</td>
<td class=t width=55%>指示一个 64 位的值,表示从 1601 年 1 月 1 日开始的 100 个十亿分之一秒间隔的数量 (dbtype_filetime)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adguid</b>
<p class=t></p>
</td>
<td class=t width=13%>72</td>
<td class=t width=55%>指示全局唯一标识符 (guid) (dbtype_guid)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adidispatch</b>
<p class=t></p>
</td>
<td class=t width=13%>9</td>
<td class=t width=55%>指示指向 com 对象上 <b>idispatch</b> 接口的指针 (dbtype_idispatch)。
<p class=t><b>注意   </b>ado 目前不支持这种数据类型。使用它可能导致不可预料的结果。</p>
</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adinteger</b>
<p class=t></p>
</td>
<td class=t width=13%>3</td>
<td class=t width=55%>指示一个四字节的有符号整数 (dbtype_i4)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adiunknown</b>
<p class=t></p>
</td>
<td class=t width=13%>13</td>
<td class=t width=55%>指示指向 com 对象上 <b>iunknown</b> 接口的指针 (dbtype_iunknown)。
<p class=t><b>注意   </b>ado 目前不支持这种数据类型。使用它可能导致不可预料的结果。</p>
</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adlongvarbinary</b>
<p class=t></p>
</td>
<td class=t width=13%>205</td>
<td class=t width=55%>指示一个长二进制值(仅限于 <b>parameter</b> 对象)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adlongvarchar</b>
<p class=t></p>
</td>
<td class=t width=13%>201</td>
<td class=t width=55%>指示一个长字符串值(仅限于 <b>parameter</b> 对象)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adlongvarwchar</b>
<p class=t></p>
</td>
<td class=t width=13%>203</td>
<td class=t width=55%>指示一个以 null 终止的长 unicode 字符串值(仅限于 <b>parameter</b> 对象)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adnumeric</b>
<p class=t></p>
</td>
<td class=t width=13%>131</td>
<td class=t width=55%>指示具有固定精度和范围的确切数字值 (dbtype_numeric)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adpropvariant</b>
<p class=t></p>
</td>
<td class=t width=13%>138</td>
<td class=t width=55%>指示一个 automation propvariant (dbtype_prop_variant)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adsingle</b>
<p class=t></p>
</td>
<td class=t width=13%>4</td>
<td class=t width=55%>指示一个单精度浮点值 (dbtype_r4)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adsmallint</b>
<p class=t></p>
</td>
<td class=t width=13%>2</td>
<td class=t width=55%>指示一个双字节的有符号整数 (dbtype_i2)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adtinyint</b>
<p class=t></p>
</td>
<td class=t width=13%>16</td>
<td class=t width=55%>指示一个单字节的有符号整数 (dbtype_i1)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adunsignedbigint</b>
<p class=t></p>
</td>
<td class=t width=13%>21</td>
<td class=t width=55%>指示一个八字节的无符号整数 (dbtype_ui8)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adunsignedint</b>
<p class=t></p>
</td>
<td class=t width=13%>19</td>
<td class=t width=55%>指示一个四字节的无符号整数 (dbtype_ui4)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adunsignedsmallint</b>
<p class=t></p>
</td>
<td class=t width=13%>18</td>
<td class=t width=55%>指示一个双字节的无符号整数 (dbtype_ui2)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adunsignedtinyint</b>
<p class=t></p>
</td>
<td class=t width=13%>17</td>
<td class=t width=55%>指示一个单字节的无符号整数 (dbtype_ui1)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>aduserdefined</b>
<p class=t></p>
</td>
<td class=t width=13%>132</td>
<td class=t width=55%>指示一个用户定义的变量 (dbtype_udt)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>advarbinary</b>
<p class=t></p>
</td>
<td class=t width=13%>204</td>
<td class=t width=55%>指示一个二进制值(仅限于 <b>parameter</b> 对象)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>advarchar</b>
<p class=t></p>
</td>
<td class=t width=13%>200</td>
<td class=t width=55%>指示一个字符串值(仅限于 <b>parameter</b> 对象)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>advariant</b>
<p class=t></p>
</td>
<td class=t width=13%>12</td>
<td class=t width=55%>指示一个 automation <b>variant</b> (dbtype_variant)。
<p class=t><b>注意   </b>ado 目前不支持这种数据类型。使用它可能导致不可预料的结果。</p>
</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>advarnumeric</b>
<p class=t></p>
</td>
<td class=t width=13%>139</td>
<td class=t width=55%>指示一个数字值(仅限于 <b>parameter</b> 对象)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>advarwchar</b>
<p class=t></p>
</td>
<td class=t width=13%>202</td>
<td class=t width=55%>指示一个以 null 终止的 unicode 字符串(仅限于 <b>parameter</b> 对象)。</td>
</tr>

<tr valign="top">
<td class=t width=32%><b>adwchar</b>
<p class=t></p>
</td>
<td class=t width=13%>130</td>
<td class=t width=55%>指示一个以 null 终止的 unicode 字符串 (dbtype_wstr)。</td>
</tr>
</table>
</body>
</html>

在已有的表,创建字段。
复制代码 代码如下:

<%
dbs="data source="+server.mappath("database.mdb")+";provider=microsoft.jet.oledb.4.0;"
set conn=server.createobject("adodb.connection")
conn.open dbs
set cat =server.createobject("adox.catalog")
set cat.activeconnection = conn
set tbl=cat.tables("bbs")
set objcolumn = server.createobject("adox.column")
set objcolumn.parentcatalog = cat
objcolumn.name = "time1"
objcolumn.type = "130"
objcolumn.attributes=2
tbl.columns.append objcolumn

set objtable = nothing
set objcat = nothing

%>


删除字段和修改字段
复制代码 代码如下:

<%
dbs="data source="+server.mappath("database.mdb")+";provider=microsoft.jet.oledb.4.0;"
set conn=server.createobject("adodb.connection")
conn.open dbs
set cat =server.createobject("adox.catalog")
set cat.activeconnection = conn
set tbl=cat.tables("bbs")
tbl.columns.delete "time"

set field=tbl.columns("time2")

field.name="time"
%>


创建数据库文件
复制代码 代码如下:

<%@language="vbscript" codepage="936"%>
<%
option explicit
dim databasename '定义数据库名称
databasename="database.mdb" '数据库名称
dim databasepath '定义数据库存放路径
databasepath="e:\张伟\模块开发\新闻模块\" '数据库绝对路径
dim databasever '定义数据库版本 2000 或者 97
databasever = "2000"

function createdfile(filepath,filename,ver)
dim ca,dbver
select case ver 
case "97"
dbver = "3.51"
case "2000"
dbver = "4.0"
end select
if dbver <> "" then
set ca = server.createobject("adox.catalog") 
call ca.create("provider=microsoft.jet.oledb." & dbver & ";data source=" & filepath & filename)
end if
end function

createdfile databasepath,databasename,databasever '创建数据库

%>