var
i: Integer;
stream:Tmemorystream;
begin
inherited;
AdoConn.BeginTrans ;
try
if QryRemind.State in [dsInsert] then
Qry1.Post
else if Qry1.State in [dsEdit] then
begin
With Tadoquery.create(self) do
begin
Close;
SQL.Text := Qry1.SQL.Text ;
Open;
Edit;
For i:= 0 To Fields.Count -1 do
begin
if not Qry1.Fields[i].IsBlob then
begin
Fields[i].Value := Qry1.Fields[i].Value
end
else
begin
if Qry1.Fields[i].IsNull then
begin
TBlobField(Fields[i]).Clear ;
end
else
begin
stream:=tmemorystream.Create;
Try
TBlobField(Qry1.Fields[i]).SaveToStream(stream);
TBlobField(Fields[i]).LoadFromStream(stream);
stream.Clear ;
finally
FreeAndNil(stream);
end;
end;
end;
end;
Post;
Close;
if Qry1.State in [dsEdit,dsInsert] then Qry1.Cancel ;
end;
end;
if adoConn.InTransaction then adoConn.CommitTrans;
except
if adoConn.InTransaction then adoConn.RollbackTrans;
raise exception.Create('提交数据失败.');
end;
end;
关于‘无法为更新定位行。一些值可能已在最后一次读取后已更改’问题的解决办法
解决'无法为更新定位行。一些值可能已在最后一次读取后已更改'错误
最新推荐文章于 2025-05-14 15:31:38 发布
在处理数据库操作时,遇到'无法为更新定位行。一些值可能已在最后一次读取后已更改'的问题。本文通过示例代码展示了如何使用TADOQuery和TMemoStream进行Blob字段的正确赋值,以避免出现此类错误。在编辑或插入记录时,确保非Blob字段的值与源数据同步,并适当地处理Blob字段的空值和非空值情况。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Stable-Diffusion-3.5
图片生成
Stable-Diffusion
Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率
3万+

被折叠的 条评论
为什么被折叠?



