delphi2009用dbExpress连接Firebird火鸟数据如何写入BLOB字段(200)

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

lah998

Unregistered / Unconfirmed
GUEST, unregistred user!
用dbExpress连接Firebird火鸟数据库 TSQLQuery或TSimpleDataSet如何写入二进制字段BLOB
 
TBlobField(ADOSql1.FieldByName('photo')).SaveToStream(tempstream); 类似这样的语句在Access数据库可行,在Firebird行不通了?
 
procedure TForm1.Button10Click(Sender: TObject);//ADO成功写入//TABLEPIC(id,name,blobpic,blobtxt)//表结构:{CREATE TABLE TABLEPIC ( ID INTEGER NOT NULL, NAME VARCHAR(30), BLOBPIC BLOB SUB_TYPE 0 SEGMENT SIZE 4096, BLOBTXT BLOB SUB_TYPE 1 SEGMENT SIZE 4096);}begin with ADOQuery1 do begin SQL.Text := 'SELECT * FROM tablepic'; Open; Append; FieldByName('id').AsInteger := 4; FieldByName('name').AsString := 'ADO存入第四张照片'; TBlobField(FieldByName('blobpic')).LoadFromFile('c:/MYDBCS/AB.bmp'); TBlobField(FieldByName('blobtxt')).LoadFromFile('c:/MYDBCS/my.txt'); Post; end;end;
 
我不想用ADO连接,怎么办?
 
这一段好象是BDE的 with d_xyzc.TMPQ do begin close; sql.Text:='delete from xy_xp where xybh='''+edit1.Text+''''; execsql; if im1.Picture.Graphic<>nil then begin tms:=TMemoryStream.Create; im1.Picture.Graphic.SaveToStream(tms); tms.Position:=0; setlength(tmp,tms.size); tms.Read(tmp[1],length(tmp)); tms.Free; close; sql.Text:='insert into xy_xp(xybh)values(:xybh)'; parameters.ParamByName('xybh').value:=edit1.Text; execsql; close; sql.Text:='select * from xy_xp where xybh='''+edit1.Text+''''; open; edit; fieldbyname('xp').AsString:=tmp; post; end;
 
用dbExpress连接数据库 TSQLQuery或TSimpleDataSet就没有办法写入二进制字段BLOB
 
感谢你的参与,不好意思我不会用BDE,也不想用这个需要配制的
 
你用的什么版本的delphi?
 
delphi 2007的dbExpress是针对IB的数据库的,而不是针对firebird的。你试一下在delphi7下编译如何~~
 
delphi7和delphi2009都行啊.IB就是针对Firebird的
 
还是有点不同的~
 
前端你用的什么组件来存取的,改用TQuery试一下~~
 
规定只能用这两个组件: TSQLQuery或TSimpleDataSet如果真的知道怎么写入,上面任何一个应该都是可以的,因为我自己可以用上面任何一个写入非BLOB字段的数据.
 
用TQuery试一下~~
 
用TQuery应该是可以的,但我不会用BDE,也不想去配制.那样我就会直接用ADO了,因为用ADO我已经解决了这个问题,上面有我写的代码.问题我是用dbExpress连接的啊.
 
是完全可以的,试一下TBlobField(ClientDataSet1.FieldByName('photo')).LoadFromFile...ClientDataSet1.ApplyUpdates(0);你的问题可能出在数据绑定控件上.
 
TO:easykoala你说的我试了,通不过
 
你把代码贴出来,我都用得好好的!QQ43191182
 
问题终于找到了,是delphi版本的问题!D7下可以, delphi2009不可以!哪位在delphi2009中能通过就结贴了.
 
如果因版本问题确实不能写入,本贴保持三天将结贴
 
后退
顶部