DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: webb123
今日帖子: 1
在线用户: 2
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 ken0137 (顺眼即佛) ★☆☆☆☆ -
普通会员
2018/3/27 22:56:39
标题:
请教如何读取mssql中的image字段为字符串 浏览:2626
加入我的收藏
楼主: 请教如何读取mssql中的image字段为字符串
数据库显示是这样的,我想把这个以字符串形式读取出来显示
此帖子包含附件:
PNG 图像
大小:8.9K
----------------------------------------------
只会简单使用,并未精通深入
作者:
男 keymark (嬲) ▲▲▲△△ -
普通会员
2018/3/27 23:26:10
1楼: 看上去像bin
----------------------------------------------
[alias]  co = clone --recurse-submodules  up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2018/3/28 0:15:55
2楼: BinToHex
----------------------------------------------
(C)(P)Flying Wang
作者:
男 abcjingtong (jingtong) ★☆☆☆☆ -
普通会员
2018/3/28 9:29:57
3楼: 好奇什么情况下需要这样的需求
----------------------------------------------
18114532@qq.com
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2018/3/28 9:35:37
4楼: var
  Hex: string;
  BufSize: Integer;
  Bytes: TBytes;
begin
  Bytes := MyDataSet1.FieldByName('Photo').AsBytes;

  BufSize := Length(Bytes);
  SetLength(Hex, BufSize * 2);
  BinToHex(@Bytes[0], PChar(Hex), BufSize);
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2018/3/28 9:50:21
5楼: 顶 全能。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 ken0137 (顺眼即佛) ★☆☆☆☆ -
普通会员
2018/3/28 12:07:29
6楼: abcjingtong (jingtong)因为这个图片字段的数据是通过网页上传的,显示是delphi程序,虽然指定了要求上传的人必须使用bmp图片,但是会出现修改了后缀的jpg图片上传上去,导致显示失败,因此显示的时候需要检查图片字段是否为bmp格式的图片
----------------------------------------------
只会简单使用,并未精通深入
作者:
男 ken0137 (顺眼即佛) ★☆☆☆☆ -
普通会员
2018/3/28 12:15:08
7楼: earthsbest (全能中间件):谢谢答复
如果是D7的话,
Bytes: TBytes;
AsBytes
要怎么改?
----------------------------------------------
只会简单使用,并未精通深入
作者:
男 ken0137 (顺眼即佛) ★☆☆☆☆ -
普通会员
2018/3/28 12:24:53
8楼:  wang_80919 (Flying Wang) 谢谢
----------------------------------------------
只会简单使用,并未精通深入
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2018/3/28 13:25:27
9楼: var
  Hex: string;
  Stream: TMemoryStream;
begin
  Stream := TMemoryStream.Create;
  try
    TBlobField(ADOQuery1.FieldByName('Photo')).SaveToStream(Stream);

    BinToHex(Stream.Memory, PChar(Hex), Stream.Size);
  finally
    Stream.Free;
  end;
end;
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 ken0137 (顺眼即佛) ★☆☆☆☆ -
普通会员
2018/3/28 14:34:53
10楼: earthsbest (全能中间件)
在这句
TBlobField(ADOQuery1.FieldByName('Photo')).SaveToStream(Stream);
此帖子包含附件:
JPEG 图像
大小:19.3K
----------------------------------------------
只会简单使用,并未精通深入
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2018/3/28 15:21:38
11楼: 这种低级问题。
标准回答:找到 引发 错误的代码,设置断点,重新 DEBUG,到了断点 检查每一个对象,看看哪一个对象地址错误 或 不存在。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2018/3/28 15:57:45
12楼: 我猜猜,你可能没有Photo这个字段吧。
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 emailx45 (emailx45) ▲▲▲▲△ -
普通会员
2018/3/28 16:09:01
12楼: References:
http://docwiki.embarcadero.com/CodeExamples/Tokyo/en/TJPEGImageAssign_(Delphi)
http://docwiki.embarcadero.com/Libraries/Tokyo/en/Vcl.Imaging.jpeg.TJPEGImage.Create
http://docwiki.embarcadero.com/Libraries/Tokyo/en/Vcl.Imaging.jpeg.TJPEGImage.Assign


How to import an image to Your_Field_BLOB (BlobField)
Note: Dataset in Edit/Insert mode

----
var
Jpg :TJpegImage;
begin
try
Jpg := TJpegImage.Create;
MemoryStream := TMemoryStream.Create;
//*******
  Jpg.LoadFromFile(Your_File_JPG);
  Jpg.SaveToStream(MemoryStream);
//*******
  Your_Field_Blob.BlobType := ftTypedBinary;
  Your_Field_Blob.LoadFromStream(MemoryStream);
finally
// if need use "if Assigned(MemoryStream) then ....
// if need use "if Assigned(Jpg) then ....
  MemoryStream.Free;
  Jpg.Free;
end;

----------
Read Your_Field_BLOG with jpg image and show it in tImage component:
----
var
  BS:TStream;
  My_Imagem:TJPEGImage;
begin
  try
    BS := Your_Field_BLOB.DataSet.CreateBlobStream( Your_Field_BLOB, bmRead );
/****
    if (BS.Size > 0) then begin
      My_Imagem := TJPEGImage.Create;
      try
        My_Imagem.LoadFromStream(BS);
        Image1.Picture.Assign( nil );
        Image1.Picture.Assign( My_Imagem );
      finally
        My_Imagem.Free;
      end;
    end;
  finally
// if need use "if Assigned(BS) then ....
    BS.Free;
  end;
end;
----------------------------------------------
The higher the degree, the greater the respect given to the humblest!RAD 11.3
作者:
男 ken0137 (顺眼即佛) ★☆☆☆☆ -
普通会员
2018/3/28 17:49:58
13楼: earthsbest (全能中间件),字段我是替换掉了,不会一模一样复制的
  with qry1 do
  begin
    s:='select A01.a0190,a01.A0101,C044.C044012  from a01,C044 where (A01.A0188=C044.A0188) '
          +' and (A01.a0190 like ''%'+EMNoTxt.Text+'%'')  order by A01.a0188';

    Close;
    SQL.Add(s);
    open;
//    ShowMessage(fieldbyname('A0190').AsString);
    Stream := TMemoryStream.Create;
    try
//这里报错,这个C044012就是image类型的字段
      TBlobField(FieldByName('C044012')).SaveToStream(Stream);

      BinToHex(Stream.Memory, PChar(Hex), Stream.Size);
    finally
      Stream.Free;
    end;
    ImageTxt.Text:=Hex;
end;
----------------------------------------------
只会简单使用,并未精通深入
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2018/3/29 9:24:23
14楼: 是 BinToHex 报错, 前面少了这句 SetLength(Hex, Stream.Size * 2);
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2018/3/29 9:26:16
15楼: 就算 全能 少写了代码。
也不是 楼主 推卸 责任 的 理由。
这种低级错误。楼主都解决不了,搞个屁的开发。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 ken0137 (顺眼即佛) ★☆☆☆☆ -
普通会员
2018/4/2 21:46:34
16楼: earthsbest (全能中间件)
好的,谢谢您的回复,试了一下,获得的是下面这样的东西
iVBORw0KGgoAAAANSUhEUgAAAeUAAABmCAIAAAB6AR73AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg
AElEQVR42u2dW3MbN7LH(很多,省略)

请问是不是还需要转码什么的呀?
----------------------------------------------
只会简单使用,并未精通深入
作者:
男 qiuyan81 (苦恋树) ★☆☆☆☆ -
普通会员
2018/4/4 9:26:07
17楼: 看到某喷子还在喷,我就放心了,这世界还是正常的.
----------------------------------------------
作者:
男 ken0137 (顺眼即佛) ★☆☆☆☆ -
普通会员
2018/4/6 22:37:25
18楼: qiuyan81 (苦恋树)
呵呵,同感,我是觉得好歹也是起个顶贴的作用,也是好的。
----------------------------------------------
只会简单使用,并未精通深入
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2018/4/16 9:32:12
19楼: 不知楼主的是什么原因,我的是正常的。
此帖子包含附件:
PNG 图像
大小:126.7K
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行163.0859毫秒 RSS