各两种方式
二进制字段
保存:
(query1.FieldByName('img') as TBlobField).LoadFromFile('e:\temp.bmp');
TBlobField(Table1.FieldByName('Image')).Assign(Image1.Picture.Bitmap);
取出:
(query1.FieldByName('img') as TBlobField).Savetofile('e:\temp.bmp');
Image1.Picture.Bitmap.assign(TBlobField(Table1.FieldByName('Image')));

解决方案 »

  1.   

    我的要求是用sql来实现将一个TImage的图象存取,可以实现吗?
      

  2.   

    SQL server 论坛精华区有比较精彩的讨论
      

  3.   

    有谁能告诉我用sql语句来实现呀
      

  4.   

    这里是delphi论坛 ,所以可能对sql不是特别熟悉,
    建议你到sql论坛去问。
      

  5.   

    http://www.csdn.net/Expert/TopicView1.asp?id=219786
      

  6.   

    可我是用delphi做的前台,有没有人具体指导呀。。
      

  7.   

    sql 中有一个image字段类型。
      

  8.   

    这个我知道,我想知道的是是否可以用sql把要存的用户图象存到数据库中去,因为图象只不过是要存的东西的一部分。如果可以,应该怎么做?
      

  9.   

    用TADOQuery
    SQL:Insert Into ...set ... Picture = :NewPic;var
      vtData:OleVariant;
      PtrData:PByte;
      Stream:TStream;
      DataSize:Integer;
    begin
      Stream := TFileStream.Create('e:\pics\1.bmp',fmOpenRead);
      DataSize := Stream.Size;
      vtData := VarArrayCreate([0,DataSize-1],varByte);
      PtrData := VarArrayLock(vtData);
      Stream.Position := 0;
      Stream.Read(PtrData^,DataSize);
      Stream.Free;
      VarArrayOnlock(vtData);
      ADOQuery1.Parameters.ParamByName('NewPic').Value := vtData;
      vtData := Unassigned;
      ...//设置其它参数
      ADOQuery.ExecSQL;
    end;
      

  10.   

    楼上的,如果不用参数,应该怎样写(直接用sql)?
      

  11.   

    用 Insert Into values(...)格式怎么写?
      

  12.   

    Stream := TFileStream.Create('e:\pics\1.bmp',fmOpenRead);
    如果我修改信息时,没有重新打开图象文件,只不过是改了用户地址之类的东西,我就无法知道文件目录地址,也就是'e:\pics\1.bmp',请问如何处理?
      

  13.   

    定义Jpeg:TMemorystream;
    然后用Query 的SaveToStream和LoadFromStream方法;