sql-server-2008 - 使用 MS Access 2010 将文件上传到 SQL Server 2008 数据库

标签 sql-server-2008 ms-access

我需要将文件(例如 excel、word 等文档)加载到 SQL Server 2008,以便可以从网站查看/下载它们。我需要能够从 Access 数据库和网站加载和打开文件。

有谁可以帮忙,谢谢。

最佳答案

这是我在旧项目中的做法。你可以去掉进度条的东西和其他一些东西,但你明白了

Public Sub Upload_file_OLD(lMaterial_ID As Long, strFile_name As String)
'upload the file to the selected material ID.
Dim adStream As ADODB.Stream
Dim rst As ADODB.Recordset
On Error GoTo Error_trap

'check if we have an open connection, if we do use it
Select Case dbCon.State
    Case adStateOpen
        'connection is open, do nothing
    Case adStateConnecting
        'still conecting wait
        Do Until dbCon.State = adStateOpen
            Application.Echo True, "Connection to DB"
        Loop
    Case adStateClosed
        'connection closed, try to open it
        If Len(strSQL_con_string) = 0 Then
            Set_SQL_con "MCTS"
        End If
        dbCon.ConnectionString = strSQL_con_string
        dbCon.Provider = "sqloledb"
        dbCon.Open
End Select

Me.acxProg_bar.Value = 0
Me.acxProg_bar.Visible = True
Me.Repaint

Set adStream = New ADODB.Stream
adStream.Type = adTypeBinary
adStream.Open
Me.acxProg_bar.Value = 10
Me.Repaint
adStream.LoadFromFile strFile_name
Me.acxProg_bar.Value = 50
Me.Repaint

Set rst = New ADODB.Recordset
rst.Open "SELECT Material_FS,Material_file_name, Material_size FROM tblMaterials WHERE Material_ID=" & lMaterial_ID, dbCon, adOpenKeyset, adLockOptimistic
Me.acxProg_bar.Value = 60
Me.Repaint
Me.txtFile_size = adStream.Size
rst.Fields("Material_FS").Value = adStream.Read
rst.Fields("Material_file_name").Value = GetFileName(strFile_name)
rst.Fields("Material_size").Value = adStream.Size
Me.acxProg_bar.Value = 90
Me.Repaint
rst.Update
rst.Close
dbCon.Close
Me.acxProg_bar.Value = 0
Me.acxProg_bar.Visible = False
Me.Repaint


Exit Sub

Error_trap:

If dbCon Is Nothing = False Then
    If dbCon.State = adStateOpen Then dbCon.Close
End If

DoCmd.Hourglass False
MsgBox "An error happened in sub Upload_file, error description, " & Err.Description, vbCritical, "MCTS"

End Sub

关于sql-server-2008 - 使用 MS Access 2010 将文件上传到 SQL Server 2008 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5471880/

相关文章:

sql - 如何在sql server中对行号进行内连接

sql-server - SQL Server 双向级联?

c# - MS Access/accdb "Cannot open database"错误 (C#)

vba - 子表单不会随着动态添加的新数据而更新

sql - XNA Windows 游戏简单数据库 Access - .mdb 不起作用 [非常基本]

sql - 大表的自定义排序和分页

sql - SQL Server 中的 "Time-out occurred while waiting for buffer latch type 2"错误

performance - SQL Server 2008 FILESTREAM性能

python - 尝试使用 pyodbc 执行查询时出现 "Optional feature not implemented"错误

ms-access - 存在 32 位 Office 时手动安装 64 位 MS Access ODBC 驱动程序