| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
免费IT实战开发视频教程合集分享千里之行 始于足下
共有 573 人关注过本帖
标题:求助:保存二进制数据到sql出错问题!
只看楼主 加入收藏
xxiangzi
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-12-29
结帖率:0
  问题点数:0  回复次数:2   
求助:保存二进制数据到sql出错问题!
本人需要将TRzRichEdit组件内的数据以二进制流保存到SQL数据库表内,不管是增加一行或修改某一行(无论id为多少),二进制数据总是保存在表的第一行,思考多日未果,求助各位大侠!

说明:本人初次来,没有分给,请多包涵!

代码大意如下(实际的更复杂):

Procedure TGzAdmin_frm.Button1Click(Sender:TObject);
var
    strSql:string;
    streamCZ:TMemoryStream;
begin
    strSql:='select * from tablename where (id=20)';
    with ADOQ_GzAd to
    begin
        Close;SQL.text:=strSql;Open;
        Active:=True;
        edit;
        FieldByName('列A').AsString:='AAA';  
        FieldByName('列B').AsString:='BBB';
        
        StreamCZ:=TMemoryStream.Create;
        RzRichEdit_Yway.lines.LoadFromStream(StreamCZ);
        StreamCZ.position:=0;
        TBlobField(ADOQ_GzAd.FieldByName('列C').LoadFromStream(StreamCZ);

        FieldByName('列D').AsString:='';
        
        Post;
        StreamCZ.Free;
    end;
end;
搜索更多相关主题的帖子: 数据库表  二进制  where  
2012-12-29 15:56
xxiangzi
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-12-29
  得分:0 
补充:
“with ADOQ_GzAd to”有误,应为:“with ADOQ_GzAd do”。

列A,列B、列D为字符串数据,都能正常保存到所选择的id行,只有列C(二进制数据)总是将数据保存在表的第一行。

[ 本帖最后由 xxiangzi 于 2012-12-29 18:20 编辑 ]
2012-12-29 18:19
xxiangzi
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-12-29
  得分:0 
大侠们大忙了,没空搭理我。

今天重新调试代码,找到问题的所在:
第一、数据并非意外保存在第一行,而是没有保存(原因看错了)。
第二、不能保存在的原因是“RzRichEdit_Yway.lines.LoadFromStream(StreamCZ);”,应改为:RzRichEdit_Yway.lines.SaveToStream(StreamCZ);

2013-01-03 10:04







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.196932 second(s), 8 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved