给你一断我的代码,不过你要有TMySQL.Components for Delphi控件,
URL: http://www.inprises.com/control/TMySQL.Components.v2001.1.0.0.For.Delphi.And.Kylix.Incl.Full.Source-DiSTiNCT.rar
====================================================================
{本程序已实现了图像从mysql数据库存入和读出
作者:刘志强
image表:
code char 10
image longblob (*如换成blob则存储很慢)
}
unit Unit119;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, MySQLDataset, Grids, DBGrids, MySQLServer, StdCtrls, DBCtrls;type
TForm1 = class(TForm)
MySQLServer1: TMySQLServer;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
MySQLQuery1: TMySQLQuery;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
var
Buffer: PChar;
fd: Integer;
Stream: TMySQLBlobStream;
bmp:TBitmap;
flen:Int64;
begin
bmp:=TBitmap.Create;
try
//向Mysql表写入Bmp图像
bmp.LoadFromFile('c:\program files\common files\borland shared\Images\Splash\256color\factory.bmp');
MySQLQuery1.Open;
MySQLQuery1.Append;
MySQLQuery1.FieldByName('code').AsString:='刘志12';
MySQLQuery1.FieldbyName('image').Assign(bmp);
MySQLQuery1.TableName:='image';
MySQLQuery1.post;
//从Mysql表读出Bmp图像
MySQLQuery1.close;
MySQLQuery1.SQl.Clear;
MySQLQuery1.SQL.Add('select * from image where code="刘志12"');
MySQLQuery1.Open;MySQLQuery1.Next;
MySQLQuery1.Edit;
Stream := TMySQLBlobStream.Create(MySQLQuery1.FieldByName('Image') as TBlobField, bmReadWrite);
bmp.LoadFromStream(stream);
canvas.Draw(0,0,bmp); 
finally
Stream.Free;
bmp.Free;
end;
end;
end.

解决方案 »

  1.   

    http://www.inprises.com/control/TMySQL.Components.v2001.1.0.0.For.Delphi.And.Kylix.Incl.Full.Source-DiSTiNCT.rar已停止下载,你网上找找吧,
    还不行就发消息给我,我传你一个,
    来支持一下下吧
    http://www.csdn.net/expert/topic/1053/1053637.xml?temp=1.813906E-02
      

  2.   

    ftp://166.111.168.13/DelphiVCL/DelphiVCL/R-T/TMySQLComponents/内可下
      

  3.   

    我是说直接写SQL语句,而不要什么VB ,delphi 什么的,行吗?
      

  4.   

    ??直接写?
    连PHP也不用??二进制文件
    不太好处理吧
      

  5.   

    楼上的:
    TEXT怎么写SQL语句呢?
    BLOB既然说是不好办!
    能有一个比较差的办法来实现吗?谢谢了
      

  6.   

    E.g.:
    insert into mytable set blob_block="\0x6F\0\0x7F"
    总之,不能直接表达的字符用转义来解决就好了
      

  7.   

    哈……这样手工写入一个blob要多长时间啊 :(
      

  8.   

    不如这样UPDATE table_name SET blob_column=LOAD_FILE("/tmp/picture")
    WHERE id=1;
    关键要用file权限而且文件要在server上面。