关于存储过程中上传大数据的问题

Gabe 2008-02-14 09:45:24
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 ) )
...全文
148 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
guiguigz 2008-02-20
  • 打赏
  • 举报
回复
我也顶!我想知道有没有人会?
Gabe 2008-02-19
  • 打赏
  • 举报
回复
再顶,不信没人会
Gabe 2008-02-18
  • 打赏
  • 举报
回复
已经是压缩的了...

话说回来,我就是想说,如何可以做到多次调用存储过程完成一个文件的上传?且保证数据库中数据的完整性
artmouse 2008-02-16
  • 打赏
  • 举报
回复
能不能压缩了存进去啊,省点空间
晓风残月0110 2008-02-15
  • 打赏
  • 举报
回复
只会sql,c的人当然少了
wo594261 2008-02-15
  • 打赏
  • 举报
回复
JF
zghua851004 2008-02-15
  • 打赏
  • 举报
回复
接分帮顶
Gabe 2008-02-15
  • 打赏
  • 举报
回复
继续顶
Gabe 2008-02-14
  • 打赏
  • 举报
回复
比如我想通过存储过程100K 100K的读进去,如何写这样的存储过程?或者调用?
free1879 2008-02-14
  • 打赏
  • 举报
回复
百M?不至于啊,实在不行,分批读进去,再连起来,看看别人的处理方法!
Gabe 2008-02-14
  • 打赏
  • 举报
回复
怎么么有人啊....都还没上班呢?

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧