又是BLOB谁知道:Couldn't perform the edit because another user changed the record! (50

  • 主题发起人 主题发起人 二勇哥
  • 开始时间 开始时间

二勇哥

Unregistered / Unconfirmed
GUEST, unregistred user!
又是BLOB谁知道:Couldn't perform the edit because another user changed the record! (50分)<br />又是BLOB的问题
当我执行代码
//
table1.Edit;
(table1.FieldByName('pic') as tblobfield).LoadFromFile('d:/cover.bmp');
table1.Post;
时,出现错误
Couldn't perform the edit because another user changed the record!
但是,图还能被加入到数据库中(SQL SERVER7)
我的BDE的BLOB SIZE已经设的足够大5000k,COVER.BMP只有400K
SQL SERVER的PIC字段我用的是IMAGE类型。

那位大虾给解答一下?
 
是不是在edit以前启动了事务?
 
to jammi:
在table1.Edit;前只有代码:
query1.SQL.Add('select pic from pic_save where id=1');
query1.Open;
并没有使用事务,是不是要改BDE?
 
:)关注
我感觉设BLOB SIZE好象用处不大,
我出这中问题后,把控件删掉,使用SQL语句来做的,没问题了,就是有点繁琐:(
 
还是用sql + tquery做罢

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('update Pic set pic =:Pic where ...');
Query1.Parameters.ParamByName('Pic').Assign(Image1.Picture.Bitmap);
Query1.ExecSQL;
 
这个与blob无关,也许是数据库中有非法数据(二条一模一样的数据,所有字段为空之类的),有没有key字段,建议建一个自增的字段试试
 
1.确定用的是bde而不是odbc
2.用文件流和tblobstream来做
3.确定edit和insert没搞乱
4.blob size 和 blob to cache是成倍的关系


好像实在没有别的什么了!
 
to sonie:
我的表只有两个字段ID(主键),PIC。
不知你说的——
“二条一模一样的数据”是指两条记录完全相同,还是某两个字段完全相同(KEY字段除外)
to seaflyboy:
你说的“确定用的是bde而不是odbc”能解释一下吗?我不太明白。
不过我的确用到了ODBC连接,在控制面板的ODBC里配置了数据源名


 
包括主键在内,你自已再看看。
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
998
import
I
I
回复
0
查看
2K
import
I
I
回复
0
查看
3K
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部