图片存入数据库出错。(100分)

  • 主题发起人 主题发起人 Hecules
  • 开始时间 开始时间
H

Hecules

Unregistered / Unconfirmed
GUEST, unregistred user!
我把:图片存入数据库,
在一个表中,有两个字段一个小图,一个在图。。
但,如果,我没有图片文件,就报错。
请教,如何,在:有图片文件时,存入,没有时,存空值?
谢谢。
代码如下。
try
ts_xt := TMemoryStream.Create;
ts_dt := TMemoryStream.Create;
ts_xt.Clear;
ts_dt.Clear;
ts_xt.LoadFromFile(kst_xt);
ts_dt.LoadFromFile(kst_dt);
with ADOQuery_ks3 do
begin
Close;
Sql.Clear;
Sql.Add('insert into dd_kst(kh,xt,dt) values(:kh1,:xt1,:dt1)');
Parameters.ParamByName('kh1').Value := Trim(Edit_kh.Text);
Parameters.ParamByName('xt1').LoadFromStream(ts_xt, ftBlob);
Parameters.ParamByName('dt1').LoadFromStream(ts_dt, ftBlob);
PrePared := True;
Execsql;
end;
finally
ts_xt.Free;
ts_dt.Free;
end;
 
为这个表增加一个ID标识字段,并设为主键,然后将另外两个字段设为允许空值就行了。
 
试了一下,失败:(
那就 判断,如果没有图片,就执行另一个SQL 好了
 
我是这样作的哟。。。
但,还没到:执行写库时,就报错了。
在:
ts_xt.LoadFromFile(kst_xt);
ts_dt.LoadFromFile(kst_dt);

 
try
with ADOQuery_ks3 do
begin
Close;
Sql.Clear;
Sql.Add('select * from dd_kst where kh1='+edit_kh.text);
open;
insert;
FieldByName('kh1').AsString :=Trim(Edit_kh.Text);
if FileExists(ts_xt) then
TBlobField(FieldByName('xt1')).LoadFromFile(ts_xt);
if FileExists(ts_dt) then
TBlobField(FieldByName('dt1')).LoadFromFile(ts_dt);
post;
end;
except
//出错提示
end;

在DELPHI+ADO+MS SQL2000SERVER中以上代码是可行的。其中表dd_kst中的字段
kh1为VARCHAR类型,设为主键;xt1,dt1为Image类型,设为允许空值。
 
判断
FileExists(ts_xt)
FileExists(ts_dt)
 
多人接受答案了。
 
后退
顶部