我用代码
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数据库编程的大虾帮忙。谢谢先!!!!
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数据库编程的大虾帮忙。谢谢先!!!!
BLOB SIZE 默认是32K,将其改大些
database1.params.values['BLOB SIZE'] := '10240';
databse1.open3.给我分吧!!!:)