如何对SQLSERVER中的BINARY类型写数据?

ybbqy 2003-11-08 10:02:41
在VC下用。
VARIANT varBLOBWord;
SAFEARRAY *psaWord;
SAFEARRAYBOUND rgsabound[1];
rst->Open((_bstr_t)sql, (IDispatch*)cnn,
ADODB::adOpenStatic, ADODB::adLockOptimistic, ADODB::adCmdText);

rgsabound[0].lLbound = 0;
rgsabound[0].cElements = word->lWordLen;
psaWord = SafeArrayCreate( VT_UI1, 1, rgsabound );

for (long i = 0; i < word->lWordLen; i++)
SafeArrayPutElement (psaWord, &i, word->byWord+i);

varBLOBWord.vt = VT_ARRAY | VT_UI1;
varBLOBWord.parray = psaWord;

rst->AddNew();
rst->PutCollect("w_id", _variant_t(word->lId));
rst->GetFields()->GetItem("w_word")->AppendChunk(varBLOBWord);
rst->PutCollect("w_md5", _variant_t(word->szWordMd5));
rst->PutCollect("w_priv", _variant_t(word->lPriv));
rst->Update();

如果SQLSERVER中的数据类型是BINARY会出现错误,如果改成别的二进制类型如IMAGE就没事,为什么会这样,我应该怎么做才是正确的?
...全文
154 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ybbqy 2003-11-08
  • 打赏
  • 举报
回复
请示通过,改成TEXT类型…
谢谢楼上的侠们!
ybbqy 2003-11-08
  • 打赏
  • 举报
回复
因为不光我一个程序要用到,别人做的DLL也要用。就是定好了的,不能我说改就改
用VB代码也可以,我用同样的代码在VB中rs.Fields.Item("w_word").AppendChunk也不可以.可以说问题出来类型上。
zjcxc 元老 2003-11-08
  • 打赏
  • 举报
回复
为什么规定一定要用binary?
ybbqy 2003-11-08
  • 打赏
  • 举报
回复
但是规定要用Binary类型呀…
ybbqy 2003-11-08
  • 打赏
  • 举报
回复
今天CSDN网速真快,是不是大家都不上班的原因…
txlicenhe 2003-11-08
  • 打赏
  • 举报
回复
SQL 就用image或text,ntext类型

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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