jpg文件如何写入SqlAnywhere 数据库的image字段中(100分)

  • 主题发起人 主题发起人 lllijjjing
  • 开始时间 开始时间
L

lllijjjing

Unregistered / Unconfirmed
GUEST, unregistred user!
请看如下代码:
table1.open;
table1.append;
tblobfield(table1.FieldByName('col_img')).LoadFromFile('d:/user/helpsys1.jpg')
table1.post;
table1.close;
执行到第三条语句时,出现错误:Bitmap image is not valid。请告诉我这是为什么?如何才能把jpg文件写入数据库的image字段?
 
是D4吗?D3是不支持JPG文件的
 
LoadFromFile默认为bitmap格式,不支持jpg,你可以用一个中间变量assign几次作交换.
 
呵呵, 看我回答过的问题.
http://www.gislab.ecnu.edu.cn/delphibbs/dispq.asp?LID=140095
这里也有.
 
可先作用LoadFrompicture读一个图像到变量中,转换到bitmap类型的变量中
就可以给字段付值了.
 
cytown:
我在执行你推荐的代码时,发现tblobfield(table1.FieldByName('longbinary')).BlobSize总是小于100 。我将BDE中的Blob Size改为1000,
仍然不行。这是为什么?
 
再请教各位一个问题:
var
tg:TGraphic;
begin
if openpicturedialog1.Execute then
begin
tg.LoadFromFile(openpicturedialog1.filename);//将一位图文件写入tg
table1.open;
table1.append;
table1.FieldByName('col_img').assign(tg);
table1.post;
tg.Free;
end;
end;
当执行到table1.FieldByName('col_img').assign(tg)时,发生cannot
assign a TButton to a TBlobField 的异常。TButton 和 TGraphic是两个
完全不相干的类,为何会出现这种异常?
 
奇怪奇怪真奇怪! 没理由啊!

不过,你把tg定义成tgraphic似乎不太合适,至少也应该是一个tbitmap吧?
 
var
tg:TBitmap;
begin
tg:=tbitmap.create;
if openpicturedialog1.Execute then
begin
tg.graphic.LoadFromFile(openpicturedialog1.filename);//将一位图文件写入tg
table1.open;
table1.append;
tblobfield(table1.FieldByName('col_img')).assign(tg);
table1.post;
tg.Free;
end;
end;
 
更简单些用:
begin
if openpicturedialog1.Execute then
begin
table1.open;
table1.append;
tblobfield(table1.FieldByName('col_img')).LoadFromFile(openpicturedialog1.filename);//将一位图文件写入
table1.post;
end;
end;
 
接受答案了.
 
请问:CYTOWN

begin
if openpicturedialog1.Execute then
begin
table1.open;
table1.append;
tblobfield(table1.FieldByName('col_img')).LoadFromFile(openpicturedialog1.filename);//将一位图文件写入
table1.post;
end;
end;
在Query AnaLyzer中不能通过,为何?
 
要注意, 一些数据库的image字段只支持bitmap类型, 其它类型会错.
如果要使用其它类型. 1. 转成bitmap类型(用tgraphic...)
2. 改用text类型.
 
后退
顶部