ALTER PROCEDURE [dbo].[Insert_p]
@Content varbinary(max),
@Length int,
@Type varchar(50),
@Id int output对于@Content varbinary(max),我VC的时候必需把数据需部读入内存,然后再进行Execute
当这个数据大到百M的时候,就会很占内存,哪位知道有些更好的办法吗?我现在VC的读取方法 BYTE* pBuf = pFile;
if(pBuf)
{    
  SAFEARRAYBOUND rgsabound[1];
  rgsabound[0].lLbound = 0;
  rgsabound[0].cElements = (long) dwFileLenth;
 
  psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
if ( psa == NULL )
{
WriteAndPrintLogInfo( "TransSQLProcess SafeArrayCreate failed.\n" );
delete [] pFile;
return RET_ERROR;
}
 
  for (long i = 0; i < (long)dwFileLenth; i++)
  SafeArrayPutElement (psa, &i, pBuf++); varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa; if( pFile )
{
delete [] pFile;
pFile = NULL;
}
} _variant_t varFile(varBLOB);
CADOParameter pFileContent(CADORecordset::typeLongVarBinary, dwFileLenth, CADOParameter::paramInput);
if( !pFileContent.SetValue( varFile ) )

解决方案 »

  1.   

    怎么么有人啊....都还没上班呢?
      

  2.   

    百M?不至于啊,实在不行,分批读进去,再连起来,看看别人的处理方法!
      

  3.   

    比如我想通过存储过程100K 100K的读进去,如何写这样的存储过程?或者调用?
      

  4.   

    能不能压缩了存进去啊,省点空间
      

  5.   

    已经是压缩的了...话说回来,我就是想说,如何可以做到多次调用存储过程完成一个文件的上传?且保证数据库中数据的完整性
      

  6.   

    我也顶!我想知道有没有人会?