怎么读出数据库中的二进制文件??
数据库test中有一个USER表,表中有个字段为binary类型,我想把里面的内容读出来并写入一个WORD文件,SQL语句应该怎么写??请各位高手指教,谢谢!!! 问题点数:50、回复次数:8Top
1 楼firevian(Easy-going)回复于 2005-05-18 13:18:48 得分 0
急啊,各位大哥有没有不吝赐教的阿??万分感谢Top
2 楼wanghan226(wh)回复于 2005-05-18 13:42:20 得分 20
想形成你的功能需要用到编程完成,步骤也是要先用变量(大文本类型)取数据然后用程序写进Word.
单用sql无法完成。
具体语句:
selectblob 字段
INTO :变量
FROM user
where id=索引值;
如果大于32k要分段用循环方式提取再组合。
Top
3 楼tdtjjiao(学习学习再学习)回复于 2005-05-18 13:59:04 得分 0
markTop
4 楼firevian(Easy-going)回复于 2005-05-18 15:08:52 得分 0
wanghan226(wh)讲的好复杂,超过32K还要分段??我原来是一个WORD文档阿,肯定过32的,那不是烦死,有无简单点的方法阿??Top
5 楼firevian(Easy-going)回复于 2005-05-18 17:16:05 得分 0
我从SQL区转到这个区怎么都没人回阿?是我问题描述的不清楚还是什么原因阿??Top
6 楼hchxxzx(NET?摸到一点门槛)回复于 2005-05-18 17:29:04 得分 30
你到这个页面去看一下.
另外,给你一个读取的示例
//创建数据库连接
OracleConnection myConnection = new OracleConnection(ConfigurationSettings.AppSettings["sysDSN"]);
myConnection.Open();
//打开数据库
OracleCommand myCommand = myConnection.CreateCommand();
string sql = "select tmp_blob from tmp where tmp_id = 103";
myCommand.CommandText = sql;
OracleDataReader myRead = myCommand.ExecuteReader();
//开始读取
myRead.Read();
//这个方法更直接
Byte[] Buffer = (Byte[])myRead[0];
//OracleLob myLob = myRead.GetOracleLob(0);
//长度是long,转为int32
//int myLength = Convert.ToInt32(myLob.Length);
//Byte[] Buffer = new byte[myLength];
//myLob.Read(Buffer,0,myLength);
//输出
this.Response.Clear();
//输出mime类型,根据上传的文件取到的mimetype,是什么我忘记了,自己写上,不过不写也没有关系.
this.Response.ContentType = "";
this.Response.BinaryWrite(Buffer);
this.Response.End();
Top
7 楼hchxxzx(NET?摸到一点门槛)回复于 2005-05-18 17:29:34 得分 0
你到这个页面去看一下.
http://community.csdn.net/Expert/topic/4016/4016964.xml?temp=.4318048Top
8 楼falcon36017(老猎)回复于 2005-09-07 10:27:55 得分 0
顶 一会儿研究Top




