求救:向oracle中clob字段写数据字符串过长的问题???急!急!急! clob要用大字段方式写入。不能用字符串了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如下,写入大字段:BOOL CDBImp::AddDayForecast(WEATHER_WRITE_INFO writeInfo){ CFile file; if(!file.Open(writeInfo.sFileName,CFile::modeRead)) { return FALSE; } int nLen = file.GetLength(); char *pBufSource = new char[nLen + 1]; char *pBuf = pBufSource; file.ReadHuge(pBufSource,nLen); pBufSource[nLen] = '\0'; file.Close(); VARIANT varBLOB; SAFEARRAY *psa; SAFEARRAYBOUND rgsabound[1]; CString sSqlStr; try { //alter system set large_pool_size=20000000 scope=both _RecordsetPtr piRecordset = NULL; CREATEINSTANCE(piRecordset,Recordset); sSqlStr = "SELECT * FROM SW_WEATHERINFO"; piRecordset->Open(_bstr_t(sSqlStr), _variant_t((IDispatch *)m_piConnection, true),adOpenStatic, adLockOptimistic, adCmdText); m_piConnection->BeginTrans(); piRecordset->AddNew(); int nIdx = writeInfo.sFileName.ReverseFind('\\'); CString sName = writeInfo.sFileName.Mid(nIdx + 1); piRecordset->PutCollect("BINARYNAME",_variant_t(sName)); piRecordset->PutCollect("VERSION",_variant_t((long)writeInfo.nVersion)); piRecordset->PutCollect("SOURCENAME",_variant_t(writeInfo.sSoureName)); piRecordset->PutCollect("STYLE",_variant_t((long)writeInfo.eType)); piRecordset->PutCollect("FORECASTTIME",_variant_t(writeInfo.tForecastTime)); if(pBuf) { rgsabound[0].lLbound = 0; rgsabound[0].cElements = nLen; psa = SafeArrayCreate(VT_UI1, 1, rgsabound); //创建SAFEARRAY对象 for (long i = 0; i < (long)nLen; i++) SafeArrayPutElement (psa, &i, pBuf++); ///将pBuf指向的二进制数据保存到SAFEARRAY对象psa中 varBLOB.vt = VT_ARRAY | VT_UI1; //将varBLOB的类型设置为BYTE类型的数组 varBLOB.parray = psa; //为varBLOB变量赋值 piRecordset->GetFields()->GetItem("CONTENT")->AppendChunk(varBLOB);//加入BLOB类型的数据 } piRecordset->Update(); m_piConnection->CommitTrans(); delete []pBufSource; } catch(_com_error &e) { theApp.MakeLog(sSqlStr,"Main"); DBErrManage(e); DisConnect(); delete []pBufSource; return FALSE; } return TRUE;} s2005 ACE Openssl 错误 实芯三边形程序如何编写??? 请问高手,VC嵌入Excel以后,怎么样使工具栏的打开、打印、打印预览等按钮响应? VC6.0是如何编码的? 'CComVariant' : undeclared identifier???谁来救救我~~~~ 请教,急急急! 各位高手,帮帮我啊~~~~~模态对话框和文档类的问题 一个有关LoadImage的小问题,请指教 中国最牛的软件公司 USB接口编程问题 线程接受到指针参数出错 100分求助,请问vc编程,如何把数据库中的字段写入word中?
BOOL CDBImp::AddDayForecast(WEATHER_WRITE_INFO writeInfo)
{
CFile file;
if(!file.Open(writeInfo.sFileName,CFile::modeRead))
{
return FALSE;
}
int nLen = file.GetLength();
char *pBufSource = new char[nLen + 1];
char *pBuf = pBufSource;
file.ReadHuge(pBufSource,nLen);
pBufSource[nLen] = '\0';
file.Close(); VARIANT varBLOB;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1]; CString sSqlStr;
try
{
//alter system set large_pool_size=20000000 scope=both
_RecordsetPtr piRecordset = NULL;
CREATEINSTANCE(piRecordset,Recordset);
sSqlStr = "SELECT * FROM SW_WEATHERINFO";
piRecordset->Open(_bstr_t(sSqlStr), _variant_t((IDispatch *)m_piConnection, true),adOpenStatic, adLockOptimistic, adCmdText);
m_piConnection->BeginTrans();
piRecordset->AddNew();
int nIdx = writeInfo.sFileName.ReverseFind('\\');
CString sName = writeInfo.sFileName.Mid(nIdx + 1);
piRecordset->PutCollect("BINARYNAME",_variant_t(sName));
piRecordset->PutCollect("VERSION",_variant_t((long)writeInfo.nVersion));
piRecordset->PutCollect("SOURCENAME",_variant_t(writeInfo.sSoureName));
piRecordset->PutCollect("STYLE",_variant_t((long)writeInfo.eType));
piRecordset->PutCollect("FORECASTTIME",_variant_t(writeInfo.tForecastTime));
if(pBuf)
{
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = nLen;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound); //创建SAFEARRAY对象
for (long i = 0; i < (long)nLen; i++)
SafeArrayPutElement (psa, &i, pBuf++); ///将pBuf指向的二进制数据保存到SAFEARRAY对象psa中
varBLOB.vt = VT_ARRAY | VT_UI1; //将varBLOB的类型设置为BYTE类型的数组
varBLOB.parray = psa; //为varBLOB变量赋值
piRecordset->GetFields()->GetItem("CONTENT")->AppendChunk(varBLOB);//加入BLOB类型的数据
}
piRecordset->Update();
m_piConnection->CommitTrans();
delete []pBufSource;
}
catch(_com_error &e)
{
theApp.MakeLog(sSqlStr,"Main");
DBErrManage(e);
DisConnect();
delete []pBufSource;
return FALSE;
}
return TRUE;
}