ASP建立ACCESS表或添加欄位
轉自:http://www.wesoho.com/article.asp?id=2226 揚帆blog
建立一張空表:
Sql="Create TABLE [表名]"
建立一張有欄位的表:
Sql="Create TABLE [表名]([欄位名1] MEMO NOT NULL, [欄位名2] MEMO, [欄位名3] COUNTER NOT NULL, [欄位名4] DATETIME, [欄位名5] TEXT(200), [欄位名6] TEXT(200))
欄位類型:
2 : "SmallInt", // 整型
3 : "Int", // 長整型
4 : "Real", // 單精確度型
5 : "Float", // 雙精確度型
6 : "Money", // 貨幣
7 : "DateTime", // 日期時間
11 : "Bit", // 是否
13 : "TimeStamp",
17 : "TinyInt", // 位元組
72 : "UniqueIdentifier", // 同步複製 ID
128 : "Binary",
129 : "Char",
130 : "NChar",
131 : "Decimal", // 小數
133 : "DateTime",
135 : "SmallDateTime",
200 : "VarChar",
201 : "Text",
202 : "VarChar", // 文本
203 : "Text", // 備忘
204 : "Binary", // 二進位
205 : "Image" // OLE 對象
以下欄位為無編碼欄位(NChar、NVarchar、NText型)
8,128,130,202,203,204,205
以下欄位為按當前系統內碼編碼的欄位(Asp中可用CodePage=936糾正為gb2312內碼)
129,200,201
在現有的表中增加欄位:
Sql="alter table [表名] add column [欄位名] varchar(200)"
修改欄位類型:
Sql="alter table [表名] Alter COLUMN 欄位名] varchar(50)"
刪除表:
Sql="Drop table [表名]"
刪除欄位:
sql="alter table [表名] drop [欄位名]"
修改欄位:Alter TABLE [表名] Alter COLUMN [欄位名] 類型(大小) NULL
建立約束:Alter TABLE [表名] ADD CONSTRAINT 約束名 CHECK ([限制欄位] <= '2007-1-1')
刪除約束:Alter TABLE [表名] Drop CONSTRAINT 約束名
建立預設值:Alter TABLE [表名] ADD CONSTRAINT 預設值名 DEFAULT 'Gziu.CoM' FOR [欄位名]
刪除預設值:Alter TABLE [表名] Drop CONSTRAINT 預設值名
=======================================
conn.open connstr
sql="alter table [tablename] add hehe char(20)"
conn.execute(sql)
response.write("添加成功")
ACCESS建立資料庫和表還不簡單,有了表欄位初始化就更簡單
=======================================
<%
session("tablen")="news"
'news是已存在的表名
session("fieldsn")="c"
'要添加的欄位名
connectionstring="provider=microsoft.jet.oledb.4.0;data source="&server.MapPath("data/qq.mdb")
set conn=server.createobject("adodb.connection")
conn.OPEN connectionstring
jhsql = " Alter Table "&session("tablen")&" add column "&session("fieldsn")&" real "
conn.execute(jhsql)
%>
================================
產生資料表,添加欄位,其中id欄位為自動增加,測試通過~~
Sub GenAutoIncrementFld()
set cn=server.CreateObject("ADODB.Connection")
set clx=server.CreateObject("ADOX.Column")
set cat=server.CreateObject("ADOX.Catalog")
set tblnam=server.CreateObject("ADOX.Table")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:/網站製作/asp操作mdb/db/test.mdb"
Set cat.ActiveConnection = cn
tblnam.Name = "Test"
clx.ParentCatalog = cat
clx.Type = 3
clx.Name = "Id"
clx.Properties("AutoIncrement") = true
tblnam.Columns.Append clx
tblnam.Columns.Append "DataField",130,20
cat.Tables.Append tblnam
Set clx = Nothing
Set cat = Nothing
cn.Close
Set cn = Nothing
End Sub
call GenAutoIncrementFld
===================================
欄位類型對應數值
''---- DataTypeEnum Values ----
Const adEmpty = 0
Const adTinyInt = 16
Const adSmallInt = 2
Const adInteger = 3
Const adBigInt = 20
Const adUnsignedTinyInt = 17
Const adUnsignedSmallInt = 18
Const adUnsignedInt = 19
Const adUnsignedBigInt = 21
Const adSingle = 4
Const adDouble = 5
Const adCurrency = 6
Const adDecimal = 14
Const adNumeric = 131
Const adBoolean = 11
Const adError = 10
Const adUserDefined = 132
Const adVariant = 12
Const adIDispatch = 9
Const adIUnknown = 13
Const adGUID = 72
Const adDate = 7
Const adDBDate = 133
Const adDBTime = 134
Const adDBTimeStamp = 135
Const adBSTR = 8
Const adChar = 129
Const adVarChar = 200
Const adLongVarChar = 201
Const adWChar = 130
Const adVarWChar = 202
Const adLongVarWChar = 203
Const adBinary = 128
Const adVarBinary = 204
Const adLongVarBinary = 205
Const adChapter = 136
Const adFileTime = 64
Const adPropVariant = 138
Const adVarNumeric = 139
Const adArray = &H2000
[本日誌由 webfly 於 2007-09-21 09:51 AM 編輯]