• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 自動獲取表格數據添加,修改數據庫數據的類

    發表于:2007-06-30來源:作者:點擊數: 標簽:
    此類個人覺得是很有用的?。?!對于以后提交表單數據,不用再一個一個去寫了,直接引用該類,再SAVE或EDIT即可,簡單多了,但當然,因為它不是智能的,所以對于某些數據格式是不能做核查的??!使用示例代碼如下: % Dim action action=Request(action) If acti
    此類個人覺得是很有用的?。?!對于以后提交表單數據,不用再一個一個去寫了,直接引用該類,再SAVE或EDIT即可,簡單多了,但當然,因為它不是智能的,所以對于某些數據格式是不能做核查的??!使用示例代碼如下:
    <%
    Dim action
    action=Request("action")
    If action="save" Then
    Dim objClass
    Set objClass=New SaveFormData
    objClass.MDBFile=Server.Mappath("data/data.mdb")
    @#objClass.SaveRecord "number","*","id"
    objClass.SaveRecord "number","Num1,text",""
    @#objClass.EditRecord "number","*","id=15","id"
    Set objClass=Nothing
    End If
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>無標題文檔</title>
    </head>

    <body>
    <form name="form1" method="post" action="index.asp?action=save">
    <table width="100%" border="0" cellspacing="2" cellpadding="0">
    <tr>
    <td width="19%" height="20">Num1</td>
    <td width="81%"><input name="num1" type="text" id="num1"></td>
    </tr>
    <tr>
    <td height="20">Num2</td>
    <td><input name="num2" type="text" id="num2"></td>
    </tr>
    <tr>
    <td height="20">Num3</td>
    <td><input name="num3" type="text" id="num3"></td>
    </tr>
    <tr>
    <td height="20">Text</td>
    <td><input name="Text" type="text" id="Text"></td>
    </tr>
    <tr>
    <td height="20">&nbsp;</td>
    <td><input type="submit" name="Submit" value="提交"></td>
    </tr>
    </table>
    </form>
    </body>
    </html>




    類的說明:

    如果是使用ACCESS數據庫,則首先指定數據庫的絕對地址![Obj].MDBFile=“數據庫文件地址“
    如果不是ACCESS數據庫,則指定類對象的CONN屬性,示例:Set [Obj].Conn=[Connection對象]

    然后就可以使用
    [Obj].SaveRecord(“表名“,“填加字段名列表“,“不填加字段名列表”) = 新增加數據
    說明: 此方法返回True或False,True則新填加新數據成功,否則失??!
    “表名”:要填表加新記錄數據的數據表名
    “填加字段名列表”:新添數據時的字段名,用“逗號”隔開,如:“name,word,sex“
    “不填加字段名列表”:添加數據時對此字段列表里包括的字段不進行添加操作。
    [Obj].SaveRecord “User“,“*“,“id“

    [Obj].EditRecord(“表名“,“修改字段名列表“,“修改條件”,“不修改字段列表“)=修改某條數據
    “表名”,“修改字段列表”和“不修改字段列表”同SAVERECORD方法一樣!
    “修改條件”:SQL查詢條件,不帶“WHERE”
    示例:[Obj].EditRecord “User“,“Pass,Sex“,“id=22“,““

    注意:“填加字段列表”和“修改字段列表”可以使用“”值或“*”值,表明修改所有字段,但建議此時“不填加字段名列表”和“不修改字段名列表”里寫上“自動增加”型的字段名,要不然填加或修改數據時將會失??!


    類代碼:
    <%
    @#/*****************************************************************************************
    Class SaveFormData
    Private C_ErrNumber @#錯誤返回代碼
    Private C_NumericAllowNull @#數字型字段時是否允許接收非數字值,True = 可以(非數字值時用0代替) False = 不可以(非數字值時將會出錯,ErrNumber = 9)
    Private C_DateTimeAllowNull @#日期時間型字段時是否允許接收非日期時間,True = 可以(非日期時間值時用(Now)代替) False = 不可以(非日期時間值時將會出錯,ErrNumber = 10)
    Private C_Conn @#數據庫CONN連接對象
    Private C_MDBFile @#ACCESS數據庫文件地址,如果不是設置CONN屬性,則該屬性一定不能為空!

    Private Sub Class_Initialize
    C_Conn=Null
    C_NumericAllowNull=True
    C_DateTimeAllowNull=True
    End Sub

    Private Sub Class_Terminate
    If Not IsNothing(C_Conn) Then
    C_Conn.Close
    Set C_Conn=Nothing
    End If
    End Sub
    @#/***************************************************************************
    @#/* 設置/返回Conn對象
    @#/*說明:添加這個是為了其它數據庫(如:MSSQL)
    @#/***************************************************************************
    Public Property Set Conn(sNewValue)
    On Error Resume Next
    If Not IsNothing(sNewValue) Then
    C_Conn.Close
    Set C_Conn=Nothing
    End If
    Set C_Conn=sNewValue
    End Property
    Public Property Get Conn
    If Not IsNothing(C_Conn) Then
    Set Conn=C_Conn
    Else
    Conn=Null
    End If
    End Property
    @#/***************************************************************************
    @#/* 設置/返回數據庫文件
    @#/*說明:
    @#/***************************************************************************
    Public Property Let MDBFile(sNewValue)
    If Trim(sNewValue)<>C_MDBFile Then @#如果數據庫文件改變則重新建立CONN對象
    C_MDBFile=Trim(sNewValue)
    Call ReCreateConn
    End If
    End Property
    Public Property Get MDBFile
    MDBFile=C_MDBFile
    End Property
    @#/***************************************************************************
    @#/* 設置/返回錯誤代碼
    @#/*說明:
    @#/***************************************************************************
    Public Property Get ErrNumber
    ErrNumber=C_ErrNumber
    End Property
    Public Sub ClearErr
    C_ErrNumber=0
    End Sub
    @#/***************************************************************************
    @#/* 設置/返回NumericAllowNull(數值型字段是否允許空值)
    @#/*說明:
    @#/***************************************************************************
    Public Property Let NumericAllowNull(sNewValue)
    C_NumericAllowNull=CBool(sNewValue)
    End Property
    Public Property Get NumericAllowNull
    NumericAllowNull=C_NumericAllowNull
    End Property
    @#/***************************************************************************
    @#/* 設置/返回DateTimeAllowNull(數值型字段是否允許空值)
    @#/*說明:
    @#/***************************************************************************
    Public Property Let DateTimeAllowNull(sNewValue)
    C_DateTimeAllowNull=CBool(sNewValue)
    End Property
    Public Property Get DateTimeAllowNull
    DateTimeAllowNull=C_DateTimeAllowNull
    End Property

    @#/***************************************************************************
    @#/* 通過數據庫的所有字段表進行獲取數據并保存
    @#/*說明:sTable = 表名 sFields = 要保存的字段名 NotFields = 不保存的字段名
    @#/***************************************************************************
    Public Function SaveRecord(ByVal sTable,ByVal sFields,ByVal NotFields)
    On Error Resume Next
    Dim Rs,i,sText,sItem
    Dim dArray()
    Call InitConn
    If IsNull(C_Conn) Then
    ErrNumber = 1 @#ErrNumber = 1 保存數據進數據庫時出未知錯誤
    SaveRecord=False
    Exit Function
    End If
    Set Rs = server.CreateObject("ADODB.Recordset")
    If Trim(sFields)="" Then sFields="*"
    NotFields=","&NotFields&","
    Rs.Open "Select "&sFields&" From ["&sTable&"]",C_Conn,1,3
    ReDim dArray(Rs.Fields.Count-1) @#臨時存放數據數組
    For i=0 To Rs.Fields.Count-1
    Set sItem=Rs.Fields.Item(i)
    If InStr(NotFields,","&sItem.Name&",")<1 Then @#排除字段
    dArray(i)=TSpace(Request(sItem.Name)) @#取得表格數據
    If IsTextFields(sItem.Type) Then @#如果是字符字段則取得字段大小的數據
    dArray(i)=Left(dArray(i),sItem.DefinedSize)
    ElseIf IsNumericFields(sItem.Type) Then @#如果是數值型字段,則判斷是否是數值否則不給予添加
    If Not IsNumeric(dArray(i)) Then
    If C_NumericAllowNull Then
    dArray(i)=0
    Else
    ErrNumber = 9 @#ErrNumber = 9 (獲取的是非數字值)
    SaveRecord=False
    Exit Function
    End If
    End If
    ElseIf IsDateTimeFields(sItem.Type) Then @#日期時間型字段
    If Not IsDate(dArray(i)) Then
    If C_DateTimeAllowNull Then
    dArray(i)=Date
    Else
    ErrNumber = 10 @#ErrNumber = 10 (獲取的是非日期時間型)
    SaveRecord=False
    Exit Function
    End if
    End If
    End If
    End If
    Next
    @#添加進數據庫
    Rs.AddNew
    For i=0 To Rs.Fields.Count-1
    Set sItem=Rs.Fields.Item(i)
    If InStr(NotFields,","&sItem.Name&",")<1 Then
    Rs(sItem.Name)=dArray(i)
    End If
    Next
    If Err.Number<>0 Then
    ErrNumber = 1 @#ErrNumber = 3 保存數據進數據庫時出未知錯誤
    SaveRecord=False
    Err.Clear
    Exit Function
    End If
    Rs.Update
    Rs.Close
    Set Rs=Nothing
    Erase dArray @#清除數組數據
    If Err.Number<>0 Then
    ErrNumber = 1 @#ErrNumber = 1 保存數據進數據庫時出未知錯誤
    SaveRecord=False
    Err.Clear
    Else
    SaveRecord=True
    End If
    End Function
    @#/***************************************************************************
    @#/* 通過數據庫的所有字段表進行獲取數據并保存
    @#/*說明:sTable = 表名 sWhere =查詢的條件 sFields = 要修改數據的列表名
    @#/***************************************************************************
    Public Function EditRecord(ByVal sTable,ByVal sFields,ByVal sWhere,ByVal NotFields)
    On Error Resume Next
    Dim Rs,i,sText,sItem
    Dim dArray()
    Call InitConn
    If IsNull(C_Conn) Then
    ErrNumber = 3 @#ErrNumber = 1 保存數據進數據庫時出未知錯誤
    EditRecord=False
    Exit Function
    End If
    Set Rs = server.CreateObject("ADODB.Recordset")
    If Trim(sFields)="" Then sFields="*"
    If Trim(sWhere)="" Then sWhere="1=1"
    NotFields=","&NotFields&","
    Rs.Open "Select "&sFields&" From ["&sTable&"] Where "&sWhere,C_Conn,1,3
    ReDim dArray(Rs.Fields.Count-1) @#臨時存放數據數組
    For i=0 To Rs.Fields.Count-1
    Set sItem=Rs.Fields.Item(i)
    If InStr(NotFields,","&sItem.Name&",")<1 Then
    dArray(i)=TSpace(Request(sItem.Name)) @#取得表格數據
    If IsTextFields(sItem.Type) Then @#如果是字符字段則取得字段大小的數據
    dArray(i)=Left(dArray(i),sItem.DefinedSize)
    ElseIf IsNumericFields(sItem.Type) Then @#如果是數值型字段,則判斷是否是數值否則不給予添加
    If Not IsNumeric(dArray(i)) Then
    If C_NumericAllowNull Then
    dArray(i)=0
    Else
    ErrNumber = 9 @#ErrNumber = 9 (獲取的是非數字值)
    EditRecord=False
    Exit Function
    End If
    End If
    ElseIf IsDateTimeFields(sItem.Type) Then @#日期時間型字段
    If Not IsDate(dArray(i)) Then
    If C_DateTimeAllowNull Then
    dArray(i)=Date
    Else
    ErrNumber = 10 @#ErrNumber = 10 (獲取的是非日期時間型)
    EditRecord=False
    Exit Function
    End if
    End If
    End If
    End If
    Next
    @#修改數據庫
    For i=0 To Rs.Fields.Count-1
    Set sItem=Rs.Fields.Item(i)
    If InStr(NotFields,","&sItem.Name&",")<1 Then
    Rs(sItem.Name)=dArray(i)
    End If
    Next
    If Err.Number<>0 Then
    ErrNumber = 3 @#ErrNumber = 3 保存數據進數據庫時出未知錯誤
    EditRecord=False
    Err.Clear
    Exit Function
    End If
    Rs.Update
    Rs.Close
    Set Rs=Nothing
    Erase dArray @#清除數組數據
    If Err.Number<>0 Then
    ErrNumber = 3 @#ErrNumber = 3 保存數據進數據庫時出未知錯誤
    EditRecord=False
    Err.Clear
    Else
    EditRecord=True
    End If
    End Function
    @#/***************************************************************************
    @#/* 初始化Adodb.Connection組件對象
    @#/*
    @#/***************************************************************************
    Private Sub InitConn()
    On Error Resume Next
    Dim ConnStr
    If IsNothing(C_Conn) Then
    If C_MDBFile="" Then
    C_Conn=Null
    C_ErrNumber = 8 @#ErrNumber = 8 (打開數據庫出錯)
    Exit Sub
    Else
    Set C_Conn=Server.CreateObject("ADODB.Connection")
    ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & C_MDBFile
    C_Conn.Open ConnStr
    If Err.Number<>0 Then
    C_ErrNumber = 8 @#ErrNumber = 8 (打開數據庫出錯)
    Err.Clear
    C_Conn=Null
    Exit Sub
    End If
    End If
    End If
    End Sub
    Private Sub ReCreateConn()
    On Error Resume Next
    Dim ConnStr
    If Not IsNothing(C_Conn) Then
    C_Conn.Close
    Else
    Set C_Conn=Server.CreateObject("ADODB.Connection")
    End If
    ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & C_MDBFile
    C_Conn.Open ConnStr
    If Err.Number<>0 Then
    C_ErrNumber = 8 @#ErrNumber = 8 (打開數據庫出錯)
    Err.Clear
    C_Conn=Null
    End If
    End Sub

    Private Function TSpace(ByVal sVal)
    sVal=Trim(sVal)
    sVal=Replace(sVal,"@#","@#@#")
    TSpace=sVal
    End Function


    @#/**字段的Type屬性集*******
    @#/*Type = 2 整形
    @#/*Type = 3 長整形
    @#/*Type = 4 單精度形
    @#/*Type = 5 雙精度形
    @#/*Type = 6 貨幣形
    @#/*Type = 7 日期時間
    @#/*Type = 17 字節形
    @#/*Type = 11 邏輯形
    @#/*Type = 202 文本型
    @#/*Type = 203 備注型
    @#/*Type = 205 OLE對象
    Private Function IsNumericFields(ByVal iType)
    If iType=2 Or iType=3 Or iType=4 Or iType=5 Or iType=6 Then
    IsNumberFields=True
    Else
    IsNumberFields=False
    End If
    End Function
    Private Function IsTextFields(ByVal iType)
    If iType=202 Then
    IsTextFields=True
    Else
    IsTextFields=False
    End If
    End Function
    Private Function IsDateTimeFields(ByVal iType)
    If iType=7 Then
    IsDateTimeFields=True
    Else
    IsDateTimeFields=False
    End If
    End Function
    @#/**********************************************************************************
    @#/* 函數名:判斷OBJ對象是否是空值
    @#/**********************************************************************************
    Private Function IsNothing(Obj)
    If Not IsObject(Obj) Then
    IsNothing=True
    Exit Function
    End If
    If Obj Is Nothing Then
    IsNothing=True
    Exit Function
    End If
    If IsNull(Obj) Then
    IsNothing=True
    Exit Function
    End If
    IsNothing=False
    End Function
    End Class
    %>

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>