VB 写的二进制文件读写数据库操作模块
来源:互联网 发布:域名所有者查询 编辑:程序博客网 时间:2024/04/29 17:43
'/-----------------------------------------------------------------------
'/ Desc:将文件以二进制流的形式写入数据库中
'/ Author:By Bytesoon
'/-----------------------------------------------------------------------
Public dbConn As ADODB.Connection
Public curImgPath As String
' 创建并打开数据库
Public Function OpenDB(dbServer As String, dbName As String) As Boolean
Err.Clear
OpenDB = False
'创建数据库连接对象
Set dbConn = New ADODB.Connection
'设置为可以读写操作
dbConn.Mode = adModeReadWrite
'访问SQLserver
dbConn.Provider = "sqloledb"
On Error Resume Next
'打开数据库连接
dbConn.Open "Data Source=" & dbServer & ";Initial Catalog=" & dbName & ";Persist Security Info=false;User ID=sa"
If Err.Number <> 0 Then
MsgBox "Connect failed"
Exit Function
End If
OpenDB = True
End Function
' 关闭数据库连接并释放资源
Public Sub CloseDB(Conn As ADODB.Connection)
If Conn Is Nothing Then
If Conn.State = 1 Then
Conn.Close
Set Conn = Nothing
End If
End If
End Sub
' 将给定路径下的文件写入到数据库
Public Function SaveImgToDB(Conn As ADODB.Connection, tableName As String, fieldName As String, ImgPath As String) As Boolean
SaveImgToDB = False
' 先判断数据库是否已经打开
If Conn.State = 1 Then
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
' 打开表记录
rs.Open "select [" & fieldName & "] from [" & tableName & "]", Conn, 1, 3
' 打开流对象,并装载文件
Dim os As ADODB.Stream
Set os = New ADODB.Stream
os.Mode = 3
os.Type = 1
os.Open
os.LoadFromFile ImgPath
' 将文件流写入指定字段中
If Not (rs.EOF Or rs.BOF) Then
rs.MoveFirst
rs.Fields(0).AppendChunk os.Read()
rs.Update
End If
' 关闭数据记录集对象
rs.Close
Set rs = Nothing
' 关闭流对象
os.Close
Set os = Nothing
Else
MsgBox "database not connected"
Exit Function
End If
SaveImgToDB = True
End Function
' 从数据库中获得文件
Public Function GetFileFromDB(Conn As ADODB.Connection, tableName As String, fieldName As String, saveToPath As String) As Boolean
GetFileFromDB = False
' 先判断数据库是否已经打开
If Conn.State = 1 Then
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
' 打开表记录
rs.Open "select [" & fieldName & "] from [" & tableName & "]", Conn, 1, 3
' 打开流对象
Dim os As ADODB.Stream
Set os = New ADODB.Stream
os.Mode = 3
os.Type = 1
' 从指定字段中读取文件流并保存文件
If Not (rs.EOF Or rs.BOF) Then
rs.MoveFirst
os.Flush
os.Open
os.Write rs(0).GetChunk(rs(0).ActualSize)
os.SaveToFile saveToPath, adSaveCreateOverWrite
End If
' 关闭数据记录集对象
rs.Close
Set rs = Nothing
' 关闭流对象
os.Close
Set os = Nothing
Else
MsgBox "database not connected"
Exit Function
End If
GetFileFromDB = True
End Function
- VB 写的二进制文件读写数据库操作模块
- 二进制文件的读写操作
- c++二进制文件的读写操作
- 读写二进制文件 VB.NET
- VB.net读写二进制文件
- VB二进制文件读写
- VB二进制文件读写
- C/C++文件的操作--二进制文件读写
- C++对二进制文件的读写操作
- C++对二进制文件的读写操作
- C++对二进制文件的读写操作
- Java 二进制文件读写操作
- Java读写二进制文件操作
- 二进制文件读写操作
- Java读写二进制文件操作
- Java读写二进制文件操作
- 怎样用vb读/写二进制文件
- 怎样用vb读/写二进制文件
- 深入Linux网络核心堆栈
- Linux netfilter机制应用浅释
- AnsiString 原來是一個字符數組.
- Oracle的存储过程怎么写呀?
- Spring 学习实践第一例
- VB 写的二进制文件读写数据库操作模块
- 看看
- Advances in kernel hacking
- 明确区分堆与栈(zz)
- 男人必看得5个故事
- [转]Java视线论坛 阅读主题 - 面向对象的思维方法
- 系统的在技术上的构架
- 面向对象,服务器架构,设计模式探讨
- 数学和中国文学的比较