亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cfileobject.cls

?? 一個幫助了解數(shù)據(jù)庫的例子
?? CLS
字號:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
END
Attribute VB_Name = "CFileObject"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit
'
' Object for storing datafiles inside the database
'

Implements IDataObject

Private msKey As String ' key
Private msCodeID As String ' code id
Private msDescription As String ' description
Private msFileName As String ' original file name
Private mdteOrigDate As Date ' original date of file
Private mdteDateAdded As Date ' date file added to database

Private mDB As Database ' database object

Private Const CHUNKSIZE As Long = 16384 ' internal chunksize
Private mState As doState ' internal state
Private mbRead As Boolean ' internal state
Private mbFileChanged As Boolean ' internal state again

Private Sub InitialiseProperties()
'
' Initialise the properties for this object
'
    mState = doStored
    mbFileChanged = False
    msKey = ""
    msDescription = ""
    msCodeID = ""
    mbRead = False
End Sub

Public Property Get CodeID() As String
'
' Return the Parent ID (CodeItem ID)
'
    GetAttributes
    CodeID = msCodeID
End Property

Public Property Let CodeID(ByVal sCodeID As String)
'
' Set the Parent ID (codeitem ID)
'
    GetAttributes
    msCodeID = sCodeID
    SetStateForLet
End Property

Public Property Get Description() As String
'
' Get the description of this file (original File Name)
'
    GetAttributes
    Description = msDescription
End Property

Public Property Let StoredFile(ByVal sFilename As String)
'
' Set the stored file name
'
    GetAttributes
    If Len(msDescription) > 0 Then
'
' This internal flag tells us to copy the file into the database when the
' object is committed.
'
        mbFileChanged = True
    End If
    msFileName = sFilename
    BuildFile sFilename
    SetStateForLet
End Property

Private Sub Class_Terminate()
'
' Kill our Database object reference
'
    Set mDB = Nothing
End Sub

Private Sub IDataObject_Commit()
'
' Commit the object to the database - update, delete, or insert
'
    Select Case mState
        Case doAwaitingUpdate
            UpdateObject
        Case doAwaitingInsert
            InsertObject
        Case doAwaitingDelete
            DeleteObject
        Case Else
            UpdateObject
    End Select
End Sub

Private Sub IDataObject_Delete()
    mState = doAwaitingDelete
End Sub

Private Sub IDataObject_Initialise(oDB As DAO.Database, Optional sKey As String)
'
' Initialise properties
'
    InitialiseProperties
'
' Record database reference
'
    Set mDB = oDB
'
' If we are passed a key - assume this object exists in database
'
    If Len(sKey) > 0 Then
        msKey = sKey
        mState = doStored
    Else
'
' Otherwise, assume it's to be inserted
'
        mState = doAwaitingInsert
    End If
    mbRead = False
    
End Sub

Private Property Get IDataObject_Key() As String
'
' Return object's key
'
    IDataObject_Key = msKey
End Property

Private Sub GetAttributes()
    Dim mRS As Recordset
    Dim iDO As IDataObject
'
' Get the attributes from the database
'
    On Error GoTo vbErrorHandler
    
    Select Case mState
        Case doStored, doAwaitingUpdate
            If Not mbRead Then
                'get details
                Set mRS = mDB.OpenRecordset("select * from codefiles where id = " & msKey)
                If Not (mRS.BOF And mRS.EOF) Then
                    msCodeID = mRS.Fields("codeid").Value
                    msDescription = mRS.Fields("description").Value
                    mdteDateAdded = mRS.Fields("DateAdded").Value
                    mdteOrigDate = mRS.Fields("OrigDateTime").Value
                End If
                mRS.Close
                Set mRS = Nothing
                
                mbRead = True
                
            End If
        Case Else
            ' do nothing
    End Select
    DBEngine.Idle dbRefreshCache
    
    Exit Sub

vbErrorHandler:
    Err.Raise Err.Number, "CFileObject:GetAttributes", Err.Description
    
End Sub

Private Sub InsertObject()
    Dim rs As Recordset
'
' Insert the object into the database
'
On Error GoTo vbErrorHandler

'
' Record the original date added to the database
'
    mdteDateAdded = Now()
    
    Set rs = mDB.OpenRecordset("select * from codefiles where id = 0")
    
    With rs
        .AddNew
        .Fields("codeid").Value = msCodeID
        .Fields("description").Value = msDescription
'
' Copy the file into the recordset field#
'
        BuildRSFile rs
'
' Record the required date/times
'
        .Fields("origdatetime").Value = mdteOrigDate
        .Fields("dateadded").Value = mdteDateAdded
        .Update
        .Bookmark = .LastModified
        msKey = .Fields("id")
        .Close
    End With
'
' Refresh the DB Engine
'
    DBEngine.Idle dbRefreshCache
    
    mState = doStored

    Exit Sub

vbErrorHandler:
    rs.Close
    Set rs = Nothing
    
    Err.Raise Err.Number, "CFileObject::InsertObject", Err.Description

End Sub

Private Sub SetStateForLet()
'
' Set the internal state of the object
'
    Select Case mState
        Case doAwaitingInsert, doAwaitingUpdate
            ' State doesn't change
        Case doStored
            mState = doAwaitingUpdate
        Case doAwaitingDelete
            Err.Raise AppErrors.errAwaitingDelete, "CFileObject::SetStateForLet", "This Record is About to be deleted"
        Case doDeleted
            Err.Raise AppErrors.errObjectDeleted, "CFileObject::SetStateForLet", "This record has been deleted"
        Case Else
            Err.Raise AppErrors.errObjectNotCreated, "CFileObject::SetStateForLet", "This record has not been created yet"
    End Select

End Sub

Private Sub UpdateObject()
    Dim rs As Recordset
'
' Update the object in the database
'
On Error GoTo vbErrorHandler
    
    Set rs = mDB.OpenRecordset("select * from codefiles where id = " & msKey)

    rs.Edit
    rs.Fields("codeid").Value = msCodeID
    rs.Fields("description").Value = msDescription
'
' Only rebuild the file if it's been changed to a different one
'
    If mbFileChanged Then
        BuildRSFile rs
    End If
'
' Shouldn't update the dates here!
'
    rs.Update
    rs.Close
'
' Refresh the DB Engine
'
    DBEngine.Idle dbRefreshCache
    
    mState = doStored
    mbRead = True

    Exit Sub

vbErrorHandler:
    Err.Raise Err.Number, "CFileObject::UpdateObject", Err.Description

End Sub

Private Sub DeleteObject()
    Dim sSql As String
'
' Delete the object from the database
'
    sSql = "delete from codefiles where id = " & msKey
    mDB.Execute sSql
'
' Refresh the DB Engine
'
    DBEngine.Idle dbRefreshCache
'
' Set the internal state of the object
'
    mState = doDeleted
    
End Sub


Private Sub BuildFile(ByVal sFilename As String)
    Dim iFileNum As Integer
    Dim mVar As Variant
    Dim tSFI As SHFILEINFO
    Dim sDescription As String
    Dim lPos As Long
    Dim sExtension As String
    Dim lCount As Long
'
' Build the file
'
' Get the Display name, ie. NotePad from c:\windows\system\notepad.exe
'
    If SHGetFileInfo(sFilename, 0, tSFI, Len(tSFI), SHGFI_USEFILEATTRIBUTES Or SHGFI_DISPLAYNAME) Then
        sDescription = tSFI.szDisplayName
    Else
        sDescription = sFilename
    End If
    
'
' Record the Extension of this file (useful for when we need to export)
'
    lPos = InStr(1, sFilename, ".")
    If lPos > 0 Then
        sExtension = Right$(sFilename, (Len(sFilename) - lPos))
    End If
    
    lPos = InStr(1, sDescription, vbNullChar)
    If lPos > 0 Then
        sDescription = Left$(sDescription, lPos - 1)
    End If
'
' Now build the complete filename (minus Path)
'
    If InStr(1, sDescription, "." & sExtension) Then
        msDescription = sDescription
    Else
        msDescription = sDescription & "." & sExtension
    End If
End Sub

Private Sub BuildRSFile(rs As Recordset)
    
    Dim lLen As Long
    Dim lCount As Long
    Dim lFragment As Long
    Dim lChunks As Long
    Dim bChunk() As Byte
    Dim iFileNum As Integer
    Dim oField As Field
'
' Copy the File into the recordset field
'
    On Error GoTo vbErrorHandler
        
    iFileNum = FreeFile
'
' Open the file for binary access so we can read it in chunks
'
    Open msFileName For Binary Access Read As iFileNum
'
' Get Original Date/Time of the File for storing in the Database
'
    mdteOrigDate = FileDateTime(msFileName)
    
    lLen = LOF(iFileNum)
'
' Get the number of chunks
'
    lChunks = lLen \ CHUNKSIZE
'
' Get the small fragment size
'
    lFragment = lLen Mod CHUNKSIZE
    
    ReDim bChunk(lFragment)
    
    Get iFileNum, , bChunk
    Set oField = rs("file")
    
    oField.Value = ""
'
' Append the first chunk
'
    oField.AppendChunk bChunk
    
    ReDim bChunk(CHUNKSIZE)
'
' Now read in the rest of the file into the field
'
    For lCount = 1 To lChunks
        Get iFileNum, , bChunk()
        oField.AppendChunk bChunk
    Next
'
' Close the file
'
    Close iFileNum
    
    Exit Sub
    
vbErrorHandler:
    Err.Raise Err.Number, Err.Source, Err.Description
End Sub

Public Sub SaveToFile(ByVal sFilename As String)
'
' Export the file from the database to the passed filename
'
    Dim iFileNum As Integer
    Dim lFileLen As Long
    Dim lChunks As Long
    Dim lFragment As Long
    Dim bChunk() As Byte
    Dim lCount As Long
    Dim oField As Field
    Dim oRS As Recordset
'
' Check that everythings been read in !
'
    GetAttributes
   
    On Error GoTo vbErrorHandler
'
' Get the field from the database
'
    Set oRS = mDB.OpenRecordset("select file from codefiles where id = " & msKey)
    
    If oRS.BOF Or oRS.EOF Then Exit Sub
    
    iFileNum = FreeFile
'
' Create the Named File
'
    Open sFilename For Binary Access Write As iFileNum
    Set oField = oRS.Fields("file")
    
'
' Get the length of the file and the number of chunks required
'
    lFileLen = oField.FieldSize
    lChunks = lFileLen \ CHUNKSIZE
    lFragment = lFileLen Mod CHUNKSIZE
'
' Write away the chunks to the file
'
    For lCount = 1 To lChunks
        ReDim bChunk(CHUNKSIZE)
        bChunk() = oField.GetChunk(((lCount - 1) * CHUNKSIZE), CHUNKSIZE)
        Put iFileNum, , bChunk()
    Next
'
' Write the final (or first if lChunks = 0) chunk
'
    ReDim bChunk(lFragment)
    bChunk() = oField.GetChunk(lChunks * CHUNKSIZE, lFragment)
    
    Put iFileNum, , bChunk()
    Close iFileNum
    
    oRS.Close
    Set oRS = Nothing
    
    Exit Sub

vbErrorHandler:
    Err.Raise Err.Number, Err.Source & "::CFileObject_SaveToFile", Err.Description
End Sub

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆免费在线观看| 国产a级毛片一区| 欧美性受xxxx黑人xyx| 视频一区二区三区入口| 26uuu精品一区二区在线观看| 91污在线观看| 一区二区三区四区亚洲| 日韩精品一区二区三区视频| 国产美女视频91| 亚洲午夜久久久| 久久久久久一级片| 97精品国产露脸对白| 日本亚洲一区二区| 国产欧美精品一区二区色综合朱莉| 91久久国产综合久久| 国产伦精品一区二区三区免费迷 | 亚洲电影激情视频网站| 久久久亚洲精华液精华液精华液| 色偷偷久久一区二区三区| 亚洲一区免费视频| 国产日产亚洲精品系列| 欧美久久久久免费| 99国产欧美另类久久久精品| 黑人精品欧美一区二区蜜桃 | 黄页视频在线91| 亚洲国产一区二区三区| 中文字幕av一区二区三区免费看| 欧美喷潮久久久xxxxx| 不卡一二三区首页| 麻豆成人免费电影| 偷窥国产亚洲免费视频| 亚洲天堂久久久久久久| 久久久99精品久久| 日韩小视频在线观看专区| 91在线精品一区二区三区| 国产一区二区三区美女| 蜜臀av性久久久久蜜臀av麻豆| 亚洲日韩欧美一区二区在线| 久久五月婷婷丁香社区| 欧美一区二区播放| 欧美偷拍一区二区| 91久久精品一区二区| 成人av综合在线| 成人免费视频视频在线观看免费 | 老色鬼精品视频在线观看播放| 亚洲精品v日韩精品| 国产精品视频yy9299一区| 久久午夜国产精品| 久久伊人中文字幕| 久久久久久久久久久久久夜| 88在线观看91蜜桃国自产| 在线观看日韩精品| 91福利在线播放| 福利一区二区在线| 美脚の诱脚舐め脚责91 | 中文字幕在线观看一区| 国产喂奶挤奶一区二区三区 | 亚洲欧美另类小说视频| 亚洲欧洲综合另类| 亚洲精品视频观看| 亚洲国产精品一区二区www| 亚洲一区免费观看| 天天做天天摸天天爽国产一区| 久久综合综合久久综合| 成人av资源在线观看| 欧美影视一区在线| 日韩美女天天操| 国产精品福利一区| 日韩和欧美的一区| 国产成人鲁色资源国产91色综| 99久久免费精品| 日韩欧美一区在线| 中文字幕av资源一区| 天天色图综合网| 成人黄色av网站在线| 欧美亚洲愉拍一区二区| 精品福利一区二区三区| 亚洲日本va午夜在线电影| 天天操天天色综合| 成人精品电影在线观看| 欧美乱妇一区二区三区不卡视频| 国产日本欧洲亚洲| 日本va欧美va瓶| 91尤物视频在线观看| 日韩午夜小视频| 亚洲欧美日韩在线不卡| 精品一区二区日韩| 91福利视频在线| 欧美激情一区二区三区| 日韩精品乱码av一区二区| heyzo一本久久综合| 欧美一级二级三级蜜桃| 日韩毛片精品高清免费| 国产一区二区三区四| 欧美色男人天堂| 国产精品看片你懂得| 久久99国产精品成人| 欧美三级中文字幕在线观看| 中文字幕精品一区| 国内精品在线播放| 欧美精品在线观看播放| 亚洲美女偷拍久久| 成人性生交大片免费看中文 | 国产乱子伦视频一区二区三区| 欧美亚一区二区| 中文字幕av一区二区三区高| 蜜桃精品视频在线| 欧美中文字幕一区二区三区亚洲| 国产精品久久久久久久午夜片 | 亚洲自拍另类综合| 不卡高清视频专区| 国产欧美久久久精品影院| 免费久久精品视频| 欧美精品九九99久久| 自拍偷拍国产精品| 国产91清纯白嫩初高中在线观看| 欧美va在线播放| 久久精品国产99| 日韩欧美综合在线| 蜜臀国产一区二区三区在线播放| 欧美日韩国产综合久久| 亚洲一本大道在线| 欧美无乱码久久久免费午夜一区| 亚洲精品国产成人久久av盗摄| 成人av片在线观看| 欧美精彩视频一区二区三区| 国产经典欧美精品| 亚洲国产精品二十页| 高清beeg欧美| 国产精品短视频| 92精品国产成人观看免费| 亚洲欧洲日本在线| 91色婷婷久久久久合中文| 亚洲视频一二三| 91电影在线观看| 亚洲午夜激情网站| 91精品国产欧美日韩| 日韩va亚洲va欧美va久久| 欧美一级午夜免费电影| 久久99精品国产麻豆婷婷洗澡| 欧美精品一区二区三区高清aⅴ | 一区二区免费在线| 欧美性一区二区| 天堂久久久久va久久久久| 欧美高清性hdvideosex| 蜜桃av一区二区在线观看| 久久蜜桃香蕉精品一区二区三区| 国产一区二区免费看| 一区二区三区国产精华| 日韩精品国产精品| 日韩一区二区三区四区五区六区| 视频一区视频二区中文| 日韩精品一区二区三区视频在线观看 | 日韩视频一区二区三区在线播放| 日本aⅴ精品一区二区三区 | 亚洲电影一级片| 91精品国产麻豆| 国产精品自在欧美一区| 国产精品福利一区二区| 欧美日韩一区久久| 久久精品久久综合| 国产精品二三区| 欧美精品一二三四| 国产福利一区二区三区视频| 亚洲狼人国产精品| 欧美一区二区精品久久911| 国产一区久久久| 一区二区成人在线视频| 欧美变态凌虐bdsm| zzijzzij亚洲日本少妇熟睡| 亚洲电影激情视频网站| 久久久久国产精品麻豆| 色一区在线观看| 激情五月婷婷综合| 亚洲制服丝袜在线| 久久精品男人的天堂| 在线观看欧美日本| 久久久欧美精品sm网站| 国产女人水真多18毛片18精品视频 | 免费观看久久久4p| 国产精品高清亚洲| 日韩美女天天操| 99re视频精品| 精品在线免费视频| 亚洲在线视频网站| 国产精品丝袜91| 日韩欧美亚洲一区二区| 91丝袜美腿高跟国产极品老师 | 狠狠网亚洲精品| 亚洲永久精品国产| 国产精品视频看| 精品少妇一区二区三区在线播放 | 亚洲日本在线视频观看| 精品乱人伦一区二区三区| 国产三级三级三级精品8ⅰ区| 成人黄色免费短视频| 日韩黄色小视频| 亚洲精品视频在线观看免费| 久久青草欧美一区二区三区| 在线不卡免费av|