请问如何更新sql server 数据表的image类型字段

wulingen 2003-09-29 02:53:57
本人用远程视图更新sql server 数据表,其他字段都能正常更新,但image类型字段却无法更新。

请问如何更新sql server 数据表的image类型字段
例如我想将本地硬盘上有一word文档文件"c:\aaa.doc" 内容存入服务器端sql server 数据库表的某image类型字段中以及你向过程,该如何写本地代码,请高手指教。
...全文
298 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yestoyes 2003-11-26
  • 打赏
  • 举报
回复
参数无效是因为你的版本不对,strconv()的数14在8.0版本中才有意义
你可以参见下列方法:

从文件中导入 OLE 对象并将其放入通用字段中。
语法

APPEND GENERAL GeneralFieldName
[FROM FileName | FROM MEMO PictureFieldName]
[DATA cExpression]
[LINK]
[CLASS OLEClassName]

参数

GeneralFieldName

指定放置 OLE 对象的通用字段名。可以用带有表别名的字段名来指定在非当前工作区中打开的表的通用字段。

FROM FileName

指定包含 OLE 对象的文件。必须给出文件全名,包括扩展名。如果文件不在当前目录或当前文件夹中,还需要给出文件的路径。
在 FoxPro for Macintosh 中,不能将 PICT 或 BMP 类型的图片文件导入到通用字段。若要导入图片,可把图片复制到剪切板中,然后粘贴到通用字段中去。

FROM MEMO PictureFieldName

指定 FoxBase+for Macintosh 的图片字段。用这个子句可从 FoxPro for Macintosh 表中导出 PICT 型图片。
包含通用字段的 FoxPro for Macintosh 表必须在当前选定工作区中打开。包含图片文件的 FoxBASE+for Macintosh 表必须在另一工作区中打开,图片字段名前必须加上 FoxBASE+for Macintosh 表的别名,用句点隔开图片字段名和别名。
例如,以下命令从 FoxBASE+for Macintosh 表 picttble 的 pictfield 字段中导出 PICT 类型图片,并保存到名为 genfield 的通用字段中。

APPEND GENERAL genfield FROM MEMO picttble.pictfield


APPEND GENERAL 处理两个表的当前记录。若要确保 PICT 图片导入到正确记录的通用字段中,必须使用 SET RELATION 命令建立两表之间的关系,或人工移动两个表的记录指针。

DATA cExpression

指定字符表达式,此表达式作为一个字符串存入 OLE 对象的通用字段中。OLE 对象必须能接收和处理字符串。例如,不能往 Paintbrush. 的图片对象中存入字符串。

LINK

建立 OLE 对象和包含对象的文件间的链接。OLE 对象出现在通用字段,但对象定义仍在文件中。如果省略 LINK,OLE 对象将嵌入到通用字段中。

CLASS OLEClassName

指定 OLE 对象是 OLE 类,而非其默认类。

提示
在 Visual FoxPro 和 FoxPro for Windows 中,您可以通过运行 REGEDIT 和双击 OLE 对象来为 OLE 对象确定类。类名列在“Identifier”下。

当包含 OLE 对象的文件的扩展名不同于默认扩展名,并且要强制类行为时,您可以指定类名。如果默认扩展名可用于多个 OLE 服务器,用 Class 子句指定特殊的服务器。

说明
仅用于 Visual FoxPro、FoxPro for Windows 和 Foxpro for Macintosh 中。
如果在通用字段中已有一个 OLE 对象,它将被源文件中的 OLE 对象取代
lyguo 2003-11-25
  • 打赏
  • 举报
回复

STRTOFILE(STRCONV(photo,14),curr_path+"\temp\tempphoto.jpg",.f.)

提示参数无效啊
photo
westbulls 2003-09-29
  • 打赏
  • 举报
回复
上传文件

***thisformset.imgfile保存上传图片文件的路径和文件名*****

IF !EMPTY(thisformset.imgfile)
WAIT "正在更新照片……" WINDOW AT 20,30 TIMEOUT 1

photostr=STRCONV(FILETOSTR(thisformset.imgfile),13)

IF SQLEXEC(jb,"update rsda set photo=?photostr where bh=?cworkerid")=1
WAIT clear
ELSE
WAIT clear
WAIT "更新失败!" WINDOW TIMEOUT 2
ENDIF
ENDIF

显示文件
set talk off

SELECT rsda
cbh=ALLTRIM(bh)
SQLEXEC(jb,"select photo from rsda where bh=?cbh","tphoto")
SELECT tphoto
IF !EMPTY(photo)
STRTOFILE(STRCONV(photo,14),curr_path+"\temp\tempphoto.jpg",.f.)
thisformset.frmedit.image1.Picture =curr_path+"\temp\tempphoto.jpg"
ELSE
thisformset.frmedit.image1.Picture =''
ENDIF
use
thisformset.frmedit.show
thisformset.frmedit.refresh

set talk off的作用是使strtofile函数当存在同名文件时,会自动覆盖原文件,而不显示警告

2,718

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧