delphi2010中使用DataSnape做三层保存jpg图片

在Delphi2010中使用DataSnap进行三层架构开发时,遇到保存大尺寸jpg图片报错的问题。小图片可以正常存储,但超过一定大小的图片会失败。通过分析,问题可能出在内存变量ItemImg上。通过定义新的类型,实现Create、Destroy、CopyFrom方法,并修改内存变量读取函数,最终解决了这个问题。参考DataSnap官方博客找到了解决方案。
摘要由CSDN通过智能技术生成

        服务器端采用的是ADO连接的数据库。方法可以参考《Delphi2010+DataSnap白皮书》,挺不错的一份资料,通俗易懂。

        昨天发现存储图片的时候发生错误,小图片20k-30k的可以正常存储,大点的80+k的就报错了,目前还没有找到原因。以下是抛开DataSnap,直接用ADO操作的代码,可以正常通过。

function TForm1.savepmt(ItemImg: TMemoryStream; fdid: string): boolean;
begin
  with ADOQuery_PZT do
  begin
    Close;
    sql.Text := 'select * from FenDian where 0=3';
    Open;
  end;
  with ADOQuery_PZT do // 写入信息
  begin
    Close;
    SQL.Text :=
        'Update FenDian set FDPMT=:P_FDPMT where FenDianID=''' + fdid +
        '''';
    Parameters.ParamByName('P_FDPMT').LoadFromStream(ItemImg, ftBlob);
    try
      execsql;
      result := true;
    except
       result := false;
    end;
  end;
end;<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值