数据库结构操作。适应于access,sql server等常见的数据库。

1。建立连接。
可以通过ODBC或OLEDB连接。
Set gObjDC = Server.CreateObject("ADODB.Connection")
dim strconn,myDSN
myDSN="test"
strconn="DSN="&myDSN&";uid=sa;pwd="
'strconn ="Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Initial Catalog=MeiSha;Data Source=tonny"
gObjDC.ConnectionString=strconn
gObjDC.Open

2。显示所有表
set gObjRS = gObjDC.OpenSchema(adSchemaTables)
Do While Not gObjRS.EOF
If gObjRS.Fields("TABLE_TYPE") = "TABLE" AND Left(gObjRS.Fields("TABLE_NAME"), 4) <> "MSys" Then
'不必把系统表显示出来
Response.Write ""
Response.Write "" & gObjRS.Fields("TABLE_NAME") & ""
myPLink = "?DSN_NAME=" & myDSN & "&Table_Name=" & gObjRS.Fields("TABLE_NAME")
Response.Write "
Response.Write " Response.Write "" & vbCrLf
End If
gObjRS.MoveNext
Loop
gObjRS.Close

3。新建表

" method=post>
Table Name :



Field Count :



 


definetable.asp中主要源码
myFieldCount = Request.Form("Field_Count")

&Table_Name=<% =Request.Form("Table_Name") %>&Field_Count=<%=myFieldCount %>" ID="Form1">









<% For i=1 to myFieldCount%>








<%Next%>
NameTypeLengthNullPrimary KeyUnique Index
>
  • >
  • ID="Text2">
  • ID="Select2">
  • ID="Checkbox1"> ID="Checkbox2">


    createtable.asp中主要源码
    myPrimary = ""
    mySQLQueryString = "CREATE TABLE " & myTable &" ("
    myFieldCount = CInt(Request.QueryString("Field_Count"))
    For i = 1 to myFieldCount
    myFieldName = Request.Form("FieldName_"&i)
    mySQLQueryString = mySQLQueryString & Chr(34) & _
    myFieldName & Chr(34) & " " &_
    Request.Form("FieldType_"&i)
    myLength = Request.Form("FieldLength_"&i)
    If isNumeric(myLength) Then
    mySQLQueryString = mySQLQueryString & " (" & myLength & ") "
    End If
    mySQLQueryString = mySQLQueryString & " " & Request.Form("FieldNull_"&i)
    If Request.Form("FieldUnique_"&i) <> "" Then
    mySQLQueryString = mySQLQueryString & " CONSTRAINT pk" & myFieldName & " UNIQUE"
    End If
    mySQLQueryString = mySQLQueryString & ", "
    If Request.Form("FieldPrimary_"&i) <> "" Then
    myPrimary = myPrimary & Chr(34) & myFieldName & Chr(34) & ", "
    End If
    Next
    mySQLQueryString = Left(mySQLQueryString, Len(mySQLQueryString)-2)
    If myPrimary <> "" Then
    myPrimary = Left(myPrimary, Len(myPrimary)-2)
    mySQLQueryString = mySQLQueryString & ", " & "CONSTRAINT Contraint PRIMARY KEY(" & myPrimary & ")"
    End If
    mySQLQueryString = mySQLQueryString & ");"
    'Response.Write mySQLQueryString
    gObjDC.execute mySQLQueryString

    4。显示表结构
    set gObjRS = Server.CreateObject("ADODB.Recordset")
    gObjRS.Open "[" & myTable & "]", gObjDC, adOpenForwardOnly, adLockReadOnly
    For i = 0 to gObjRS.Fields.Count - 1
    Response.Write "" & vbCrlf
    Response.Write "" & gObjRS.Fields(i).Name & "" & vbCrlf
    myType = GetType(gObjRS.Fields(i).Type)
    Response.Write "" & myType & ""& vbCrlf
    myLength = " "
    If myType <> "LONGTEXT" AND myType <> "LONGBINARY" Then
    myLength = gObjRS.Fields(i).DefinedSize
    End If
    Response.Write "" & myLength & ""& vbCrlf
    Response.Write ""& vbCrlf
    myLink = "dropfield1.asp?DSN_Name=" & myDSN & "&Table_Name=" & myTable & "&Field_Name=" & gObjRS.Fields(i).Name
    Response.Write "
    Drop " & gObjRS.Fields(i).Name & " field"
    Response.Write ""& vbCrlf
    Response.Write ""& vbCrlf
    Next
    gObjRS.Close

    Function GetType(pConstant)
    Select Case pConstant
    Case adBinary ’128
    GetType = "BINARY"
    Case adBoolean ‘11
    GetType = "BOOLEAN"
    Case adUnsignedTinyInt ’17
    GetType = "BYTE"
    Case adInteger ‘3
    GetType = "LONG"
    Case adCurrency ’6
    GetType = "CURRENCY"
    Case adDBTimeStamp ‘135
    GetType = "DATETIME"
    Case adSingle ’4
    GetType = "SINGLE"
    Case adDouble ‘5
    GetType = "DOUBLE"
    Case adSmallInt ’2
    GetType = "SHORT"
    Case adLongVarChar ‘201
    GetType = "LONGTEXT"
    Case adLongVarBinary ’205
    GetType = "LONGBINARY"
    Case adVarChar ‘200
    GetType = "TEXT"
    Case Else
    GetType = "UNKNOW(" & pConstant & ")"
    End Select
    End Function

    5。添加一字段
    mySQLQueryString = "ALTER TABLE " & myTable & " ADD COLUMN " & Request.Form("FieldName") & " "
    mySQLQueryString = mySQLQueryString & Request.Form("FieldType") & " "
    myLength = Request.Form("FieldLength")
    If isNumeric(myLength) Then
    mySQLQueryString = mySQLQueryString & "(" & myLength & ") "
    End If
    mySQLQueryString = mySQLQueryString & Request.Form("FieldNull") & " "
    If Request.Form("FieldUnique") <> "" Then
    mySQLQueryString = mySQLQueryString & " CONSTRAINT pk" & myFieldName & " UNIQUE"
    End If
    gObjDC.execute mySQLQueryString

    6。删除一字段
    mySQLQueryString = "ALTER TABLE " & myTable & " DROP COLUMN " & Request.QueryString("Field_Name") & ";"
    gObjDC.execute mySQLQueryString

    7。删除一表
    mySQLQueryString = "DROP TABLE " & myTable
    gObjDC.execute mySQLQueryString


    附:'---- 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 adDBFileTime = 137
    Const adPropVariant = 138
    Const adVarNumeric = 139

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值