我用代码
With Query do
  begin
    Close;
    Sql.Clear ;
    Sql.Add ('insert into A ');
    Sql.Add ('(pic) values');
    Sql.Add ('(:Pic)');
    ParamByName('Pic').LoadFromFile(FileNameIn,ftBlob);
    ExecSql;
    if RowsAffected <=0 then
    begin
      Result:=false;
      exit;
    end;  
  end;
向表A的pic字段传图形文件,图形文件由FileNameIn变量代表。
然后用代码
With Query do
  begin
    Close;
    Sql.Clear;
    Sql.Add ('select pic from A ');
    Sql.Add ('where id =:ID ');
    ParamByName('ID').AsString:=ID;
    Open;
  end;
  (Query.FieldByName ('pic') as TBlobField).SaveToFile(FileNameOut);
  Result:=FileNameOut;
将pic字段的图形文件下载到文件FileNameOut。A表的pic字段定义是 BYTE 类型现在我遇到的问题是如果FileNameIn的大小大于32K,则下载下来的FileNameOut文件大小只有32KA表所在是informix数据库,声称对BLOB字段没有32K的限制,那么会不会是delphi
的TBlobField类型的SaveToFile函数和LoadFromFile函数的限制呢?
如果真有这样的限制话那么应该如何解决我的问题呢?
小弟实在是没有办法,请熟悉delphi数据库编程的大虾帮忙。谢谢先!!!!

解决方案 »

  1.   

    我用SQL SERVER 2000没有发生这样的问题,informix我不大懂。
      

  2.   

    是dbe 中的blob size参数设置了,把它设置为10240,10M
      

  3.   

    在BDE里(别名处)设置:
    BLOB SIZE 默认是32K,将其改大些
      

  4.   

    1.如果是静态别名的话,在控件面板中的Bde Adiministrator中改2.如果你用的是tdatabase连接数据库的话  .....
      database1.params.values['BLOB SIZE'] := '10240';
      databse1.open3.给我分吧!!!:)
      

  5.   

    要是不用bde,用ADO连接用什么参数字设定?