这个问题我一直没有搞清楚.
这是VFP下的一个人事工资管理系统数据库,xggz.dbf[/xggz.fpt]6000条记录
其中包含zphoto-----照片,通用类型[bmp格式,其中一部分记录的bmp文件格式无效]
jl---------奖励 memo
cf---------处分 memo
一、由于在VFP环境下我没有找到将通用类型[bmp格式图片]字段导出到外部文件的方法.
因此不能用程序实现导出图片文件的目的.
二、同时由于zphoto字段存储的均为bmp格式图片,于是我用Delphi的ADO以及BDE连接此VisualFoxpro数据库[xggz.dbf]
<1.BDE>
tblobfield(Table1.FieldByName('zphoto')).SaveToFile('d:/abc.bmp');
shellExecute(handle,'open','d:/abc.bmp','','',SW_SHOWNORMAL);
<2.ADO>
tblobfield(ADOTable1.FieldByName('zphoto')).SaveToFile('d:/abc.bmp');
shellExecute(handle,'open','d:/abc.bmp','','',SW_SHOWNORMAL);
均以失败告终.[编译通过,但执行时提示"无效的位图文件,或者当前不支持这种文件格式"]
当我把这个数据库导入到Access文件后虽然可以手工打开zphoto列的图片[该列显示为BMP 图像],但是仍不能用
tblobfield(ADOTable1.FieldByName('zphoto')).SaveToFile('d:/abc.bmp');读取图像
我按照几个提出过类似问题的帖子的方法实现了图片文件[jpg格式]存入以及取出,显示[Access环境成功,还没有在其他数据库中试验]
但当打开Access数据库后我发现zphoto{即照片字段}显示为长二进制数据,不同于从VFP导入后的 BMP 图像 .
而我原来的DBF数据库近6000人的记录已经输入了照片.
我准备把数据库转换到SQL Server 2000下,并且把原来的bmp格式换为jpeg格式,但在这个环节卡壳了.
请问
1.能不能用一种程序的方法实现VFP数据库图片字段的显示及取出.
2.怎样才能用代码实现在此Access数据库中进行zphoto 列的图片转换,即 BMP图像===>长二进制数据(jpg格式) [Access数据库]