找回密码
 加入
搜索
查看: 2097|回复: 2

[系统综合] 请问如何读取sqlite数据库blob字段,生成文件

[复制链接]
发表于 2015-8-7 09:01:05 | 显示全部楼层 |阅读模式
CREATE TABLE [file] (
  [file_id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, 
  [file_name] VARCHAR(256), 
  [file_data] BLOB, 
  [parent_btn_id] INT);
;写入操作正常
_file_add(@ScriptDir & "\2.rar" ,5)
Func _file_add($file_full_path,$parent_btn_id)
        Local $filename = FileGetName($file_full_path)
        Local $fOpen = FileOpen($file_full_path ,16)
        If $fOpen == -1 Then
                FileClose($fOpen)
                MsgBox(0,"","文件写入数据库出错")
                Return -1
        EndIf
        Local $fBinaryData = FileRead($fOpen)
        FileClose($fOpen)
        Local $fsqliteData = _SQLite_Encode($fBinaryData)
        _SQLite_Exec($hDb ,'Insert into file values (NULL,"'&$filename&'" ,'&$fsqliteData&','&$parent_btn_id&')')
EndFunc

;读出操作不正常,请问要怎么写
Local $result = _file_get_file_by_name("2.rar")
If $result <> -1 Then 
        Local $fOpen = FileOpen(@ScriptDir & "\dbfile.rar" ,18)
        FileWrite($fOpen ,$result)
        FileClose($fOpen)
EndIf
Func _file_get_file_by_name($filename)
        Local $aRow
        _SQLite_QuerySingleRow($hDb ,'select * from file where file_name = "' & $filename & '"',$aRow)
        If IsArray($aRow) Then 
                Return $aRow[2]
        EndIf
        MsgBox(0,"","在数据库中找不到此文件")
        Return -1
EndFunc
发表于 2015-8-7 09:48:04 | 显示全部楼层
把实参"2.rar" 前面加上@ScriptDir试试可以不?
 楼主| 发表于 2015-8-7 11:38:14 | 显示全部楼层
回复 2# haijie1223

在写入的时候 file_name 字段的值就是2.rar
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 21:49 , Processed in 0.088830 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表