新手,请求帮忙 我想利用vc 6.0 将图片 存入 sql sever 2000 中,并读取希望提供程序或代码 [email protected] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 代码可以在网上找到很多现成的,我就不提供了,但是可以给你提供原理和操作过程:1、数据库字段应该使用blob image类型,能存放任意大小的二进制数据;2、通过SQL读写该字段当然不能按照普通变量映射方式来读写,而应该使用专用的BLOB方法。 如果使用MFC的话,有两个封装类能直接跟此字段进行数据交换,一个是CByteArray,一个是CLongBinary。 如果你使用的是OLEDB技术的话,还可以通过BEGIN_COLUMN_MAP/BLOB_ENTRY/END_COLUMN_MAP宏映射直接将数据读入或写出一个二进制缓冲区,前提是你要获得并保存一个ISequentialStream的COM接口。 如果你使用的是ADO,那么可以调用Filed接口的GetChunk/AppendChunk方法来读写BLOB数据,不过读入或者写入的参数类型是一个VARIANT类型,里面保存的是SAFEARRAY<BYTE>的指针,必须使用SAFEARRAY专用的API来访问其数据。 参考如下文章:http://www.vckbase.com/document/viewdoc/?id=719http://www.vckbase.com/document/viewdoc/?id=252 曾经我也有过同样的问题,已经解决了http://topic.csdn.net/u/20080526/18/e2cc6490-66b5-4a74-ba23-d54162a8a82c.html这是我当时发的帖子,你看一下吧 greenfields大哥,您是否能提供代码啊?谢谢啊[email protected]我已经加分了 代码可以在网上找到很多现成的,我就不提供了,但是可以给你提供原理和操作过程: 1、数据库字段应该使用blob image类型,能存放任意大小的二进制数据; 2、通过SQL读写该字段当然不能按照普通变量映射方式来读写,而应该使用专用的BLOB方法。 如果使用MFC的话,有两个封装类能直接跟此字段进行数据交换,一个是CByteArray,一个是CLongBinary。 如果你使用的是OLEDB技术的话,还可以通过BEGIN_COLUMN_MAP/BLOB_ENTRY/END_COLUMN_MAP宏映射直接将数据读入或写出一个二进制缓冲区,前提是你要获得并保存一个ISequentialStream的COM接口。 如果你使用的是ADO,那么可以调用Filed接口的GetChunk/AppendChunk方法来读写BLOB数据,不过读入或者写入的参数类型是一个VARIANT类型,里面保存的是SAFEARRAY <BYTE>的指针,必须使用SAFEARRAY专用的API来访问其数据。 我已经给你发了我的程序,读写的是DICOM图像,你读什么图像,只要修改显示部分就可以了,读写数据库都是一样的 MFC OPENGL绘图为什么数据显示不完全 VC中如何将float转为CString型 透明窗口的问题 求解一个设计方案 DrawEdge这个函数能绘制带颜色的嘛? 请教:如果有一个string内容是"c:/",我想将它去掉最后一个字符,该怎么做? 求助!关于生成一个透明的子窗口。 HID设备数据监控 谁能帮帮我? 寂默的我想找深圳的朋友,元旦一起聊聊!!(女士优先) sockaddr_in指针的复制 关于重画含有CEDIT的CWND.
1、数据库字段应该使用blob image类型,能存放任意大小的二进制数据;
2、通过SQL读写该字段当然不能按照普通变量映射方式来读写,而应该使用专用的BLOB方法。
如果使用MFC的话,有两个封装类能直接跟此字段进行数据交换,一个是CByteArray,一个是CLongBinary。
如果你使用的是OLEDB技术的话,还可以通过BEGIN_COLUMN_MAP/BLOB_ENTRY/END_COLUMN_MAP宏映射直接将数据读入或写出一个二进制缓冲区,前提是你要获得并保存一个ISequentialStream的COM接口。
如果你使用的是ADO,那么可以调用Filed接口的GetChunk/AppendChunk方法来读写BLOB数据,不过读入或者写入的参数类型是一个VARIANT类型,里面保存的是SAFEARRAY<BYTE>的指针,必须使用SAFEARRAY专用的API来访问其数据。
http://www.vckbase.com/document/viewdoc/?id=719
http://www.vckbase.com/document/viewdoc/?id=252
http://topic.csdn.net/u/20080526/18/e2cc6490-66b5-4a74-ba23-d54162a8a82c.html
这是我当时发的帖子,你看一下吧
谢谢啊
[email protected]
我已经加分了
1、数据库字段应该使用blob image类型,能存放任意大小的二进制数据;
2、通过SQL读写该字段当然不能按照普通变量映射方式来读写,而应该使用专用的BLOB方法。
如果使用MFC的话,有两个封装类能直接跟此字段进行数据交换,一个是CByteArray,一个是CLongBinary。
如果你使用的是OLEDB技术的话,还可以通过BEGIN_COLUMN_MAP/BLOB_ENTRY/END_COLUMN_MAP宏映射直接将数据读入或写出一个二进制缓冲区,前提是你要获得并保存一个ISequentialStream的COM接口。
如果你使用的是ADO,那么可以调用Filed接口的GetChunk/AppendChunk方法来读写BLOB数据,不过读入或者写入的参数类型是一个VARIANT类型,里面保存的是SAFEARRAY <BYTE>的指针,必须使用SAFEARRAY专用的API来访问其数据。