向oracle存大一点的图片报“oar-01460:转换请求无法实现或不合理”错误
向oracle存大一点的图片时,报“oar-01460:转换请求无法实现或不合理”错误。
代码如下:
TMemoryStream* pMS = new TMemoryStream;
pMS-> LoadFromFile("C:/1.jpg"); // 选择一个文件,读入流
pMS->Position=0;
pMS-> Seek(0,soFromBeginning); // 设流指针 0
ADOQuery1-> SQL-> Clear(); // 插入脚本操作
ADOQuery1-> SQL-> Add( "insert into carimage (specialimage) values (:image)");
ADOQuery1-> Parameters-> ParamByName( "image")-> LoadFromStream(pMS, ftBlob);
ADOQuery1-> ExecSQL(); // 执行SQL
delete pMS; // 删除流
pMS = NULL;
MessageBox(this->Handle,"上传成功!","提示",MB_OK);
有哪位高手做过这方面的,给个解决方法呗!
[解决办法]
我以前碰到过用一种驱动 存图片提示不出错,可是实际上存不进去
后来换驱动就好了
你更换连接Oracle的驱动试试?
[解决办法]
先看看oracle的查询分析器能存进去不?
[解决办法]
图片是不能insert的,是必须update的,操作的顺序是先执行select * from 表名 where id =:id for update 然后
TMemoryStream* pMS = new TMemoryStream;pMS-> LoadFromFile("C:/1.jpg"); // 选择一个文件,读入流pMS->Position=0;pMS-> Seek(0,soFromBeginning); // 设流指针 0 ADOQuery->Active = false; ADOQuery->SQL->Clear(); ADOQuery->SQL->Add("update carimage set specialimage =:PHOTO where ID =:RECORDID"); ADOQuery->Parameters->Items[0]->LoadFromStream(pMS,ftBlob); ADOQuery->Parameters->Items[1]->Value = RecordID; ADOQuery->ExecSQL();delete pmem;