Y
y_peijun
Unregistered / Unconfirmed
GUEST, unregistred user!
QUERY + TDBRICHEDIT+ UpdateSQL 重复存盘时 出错? General SQL error BLOB not found. 求解(200分)<br />系统用 二个读写QUERY型 以master/detail 连接,( 数据库 interbase)
其中有二 BLOB 字段 由 Tdbrichedit 控制,
query 的updateobject 采用 UpdateSQL 。
在记录修改后, 由 ApplyUpdates 将缓冲信息 写入库中。
记录的添加、删除 都没有问题,少量修改也没有问题,
但一条记录连续多次修改时,(存盘后再修改)主要是BLOB 字段来回修改, 有时多达7次时,
ApplyUpdates 操作会出错? (造成系统不稳定)
系统提示:General SQL error BLOB not found.
求解 ?
尝试 在存盘前,将BLOB 字段手工强制刷新,但问题依旧未能解决。
Stream1:= TMemoryStream.Create;
dbrichedit1.Lines.SaveToStream(Stream1);
Stream1.Position:=0;
Stream2:=TBlobStream.Create(FieldByName('BLOB')as TBlobField,bmReadWrite);
Stream2.Position:=0;
Stream2.CopyFrom(Stream1, Stream1.Size);
Stream1.FREE;
QUERY.POST;
DATABASE.StartTransaction;
try
QUERY.ApplyUpdates; //同一条记录多次重复后 出错
DATABASE.Commit;
except
DATABASE.Rollback;
Application.MessageBox('....',
'出错信息:', MB_OK);
raise;
end;
QUERY.CommitUpdates;
其中有二 BLOB 字段 由 Tdbrichedit 控制,
query 的updateobject 采用 UpdateSQL 。
在记录修改后, 由 ApplyUpdates 将缓冲信息 写入库中。
记录的添加、删除 都没有问题,少量修改也没有问题,
但一条记录连续多次修改时,(存盘后再修改)主要是BLOB 字段来回修改, 有时多达7次时,
ApplyUpdates 操作会出错? (造成系统不稳定)
系统提示:General SQL error BLOB not found.
求解 ?
尝试 在存盘前,将BLOB 字段手工强制刷新,但问题依旧未能解决。
Stream1:= TMemoryStream.Create;
dbrichedit1.Lines.SaveToStream(Stream1);
Stream1.Position:=0;
Stream2:=TBlobStream.Create(FieldByName('BLOB')as TBlobField,bmReadWrite);
Stream2.Position:=0;
Stream2.CopyFrom(Stream1, Stream1.Size);
Stream1.FREE;
QUERY.POST;
DATABASE.StartTransaction;
try
QUERY.ApplyUpdates; //同一条记录多次重复后 出错
DATABASE.Commit;
except
DATABASE.Rollback;
Application.MessageBox('....',
'出错信息:', MB_OK);
raise;
end;
QUERY.CommitUpdates;