Foxtable(狐表)用户栏目专家坐堂 → 数据库里存储图片字段


  共有4313人关注过本帖树形打印复制链接

主题:数据库里存储图片字段

帅哥哟,离线,有人找我吗?
13968559581
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:185 积分:1526 威望:0 精华:0 注册:2017/7/23 17:17:00
数据库里存储图片字段  发帖心情 Post By:2020/7/14 16:02:00 [只看该作者]

你好,我数据库有一个表A,有一列扩展列 t,想保存一张图片
假如我一张图片路径为 c:\11.jpg

我怎么写代码把这个图片写入这个字段,谢谢

  

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112380 积分:572162 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/14 16:09:00 [只看该作者]

FileSys.CopyFile("c:\11.jpg", ProjectPath & "Attachments\11.jpg")
tables("表A").current("t") = "11.jpg"

 回到顶部
帅哥哟,离线,有人找我吗?
13968559581
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:185 积分:1526 威望:0 精华:0 注册:2017/7/23 17:17:00
  发帖心情 Post By:2020/7/14 18:48:00 [只看该作者]

你好,你的方法只是把图片的路径放到数据库里吧?

如果把项目里的图片删除了,图片岂不是没有了吗

我现在是想把图片直接存储到数据库里哦

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112380 积分:572162 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/14 20:08:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
13968559581
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:185 积分:1526 威望:0 精华:0 注册:2017/7/23 17:17:00
  发帖心情 Post By:2020/7/15 10:06:00 [只看该作者]

你好,你的方法只是把图片的路径放到数据库里吧?

如果把项目里的图片删除了,图片岂不是没有了吗

我现在是想把图片直接存储到数据库里哦


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112380 积分:572162 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/15 10:12:00 [只看该作者]

4楼就是,请认真看帮助

 回到顶部
帅哥哟,离线,有人找我吗?
13968559581
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:185 积分:1526 威望:0 精华:0 注册:2017/7/23 17:17:00
  发帖心情 Post By:2020/7/16 14:00:00 [只看该作者]

我现在就想实现绘图板签名后存入签收图片这个字段,代码如下,实际运行后报错,请教一下哪里问题
Dim p As WinForm.Painter = e.Form.Controls("Painter1")
Dim f As String ="d:签名/" & r("姓名")  & "-"  & r("单据编号") & "-" & r("序号") & "-" &  r("快递单号") & "-" & Format(Date.now, "yyyyMMddHHmmss") & ".jpg"
p.Save(f)
 Dim dr As DataRow= DataTables("快递明细表").SQLFind("单据编号='" & r("单据编号") & "' and 序号='" & r("序号") & "'")
   If dr IsNot Nothing Then
    dr.SQLInsertFile("签收图片",f)
 end if

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112380 积分:572162 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/16 14:36:00 [只看该作者]

SQLFind改为Find。这些二进制的用法只能处理主表已经加载的数据。您可以使用appendload追加数据后再处理

 回到顶部
帅哥哟,离线,有人找我吗?
13968559581
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:185 积分:1526 威望:0 精华:0 注册:2017/7/23 17:17:00
  发帖心情 Post By:2020/7/16 15:21:00 [只看该作者]

还是报错呀,


图片点击可在新窗口打开查看此主题相关图片如下:bjr.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2020/7/16 15:22:42编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112380 积分:572162 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/16 15:36:00 [只看该作者]

二进制列的列类型不正确,先认真看看帮助

关于二进制列

二进制列可以用于存储各种文件。

其实Foxtable并不推荐大家使用二进制列,而是建议大家使用内置的FTP来管理文件,内置的FTP已经和Foxtable的图片管理器及文件管理器完美地整合在一起,有更好的功能和性能。
但是确实有部分客户因各种原因,希望采用二进制列来管理文件,本章就介绍如何在Foxtable中使用二进制列。

由于内部表没有办法增加二进制列,所以只有使用外部数据源时,才能使用二进制列管理文件。
虽然Access也有二进制列,但是由于Access单个数据库文件不能超过2G,所以使用二进制列时,如果文件比较大,建议大家采用SQL Server。
你并没有办法直接在Foxtable中给外部表增加二进制列,所以你只能在原数据库中事先增加好二进制列,Access对应的列类型为"OLE对象",SQL Server对应的列类型为"Image"。


 回到顶部
总数 12 1 2 下一页