delphi +sql事务问题。 20

在本机运行delphi客户端软件时访问本机的sql数据库时,没出现任何状况,但是通过本机的delphi客户端软件访问远程服务器时,语句结束后,会出现出库表里有数据,但库存... 在本机运行delphi客户端软件时访问本机的sql数据库时,没出现任何状况,但是通过本机的delphi客户端软件访问远程服务器时,语句结束后,会出现出库表里有数据,但库存表里没有数据的情况,请问是什么原因啊,急,拜托了
try
DataM_Pub.ADOconn_flck.BeginTrans;
for i:=0 to 5 do
begin
fldm:=TEdit(FindComponent('Edit_fldm'+inttostr(i))).Text;
flmc:=TComboBox(FindComponent('Comb_flmc'+inttostr(i))).Text;
flgg:=TComboBox(FindComponent('Comb_flgg'+inttostr(i))).Text;
jldw:=TComboBox(FindComponent('Edit_jldw'+inttostr(i))).Text;
cksl:=TEdit(FindComponent('txtcksl'+inttostr(i))).Text;
ckdj:=TEdit(FindComponent('txtckdj'+inttostr(i))).Text;
ckje:=TEdit(FindComponent('txtckje'+inttostr(i))).Text;
yykc:=TEdit(FindComponent('txtyykc'+inttostr(i))).Text;
yjkc:=TEdit(FindComponent('txtyjkc'+inttostr(i))).Text;
kcje:=Format('%.4f',[(strtofloat(ckdj))*(strtofloat(yjkc))]);

if (StrToFloat(ckdj)<=0) or (StrToFloat(ckje)<=0) or (fldm='')then
begin
Continue;
end
else
begin
with ADOQ_pmb do
begin
Close;
Sql.clear;
SQL.Add(select 语句);
Open;
end;
flid:=ADOQ_pmb.FieldByName('flid').AsString;

with ADOQ_khxx do
begin
Close;
Sql.clear;
SQL.Add(select 语句);
Open;
end;
khid:=ADOQ_khxx.FieldByName('khid').AsString;

with ADOQ_ckb do
begin
Close;
SQL.Clear;
SQL.Add(insert into 出库表 语句);
ExecSQL;
end;

with ADOQ_kcb do
begin
Close;
SQL.Clear;
SQL.Add(Update 库存表 语句);
ExecSQL;
end;

with ADOQ_fldjb do
begin
Close;
Sql.clear;
SQL.Add(select 语句);
Open;
end;
if (ADOQ_fldjb.RecordCount=0) then
begin
with ADOQ_fldjb do
begin
Close;
SQL.Clear;
SQL.Add(insert into fldjb 语句);
ExecSQL;
end;
end
else
begin
with ADOQ_fldjb do
begin
Close;
SQL.Clear;
SQL.Add(Update 语句);
ExecSQL;
end;
end;
end;
end;
DataM_Pub.ADOconn_flck.CommitTrans;
except
on E: Exception do
begin
//回滚
DataM_Pub.ADOconn_flck.RollbackTrans;
Application.MessageBox(PChar('系统出错:' + #13 + '错误为:'
+ E.Message + ' 数据已回滚 !'), '提示', MB_OK);
Exit;
end; // with on E: Exception do
end;
展开
 我来答
xdyg_1979
2012-04-27 · TA获得超过111个赞
知道小有建树答主
回答量:192
采纳率:0%
帮助的人:118万
展开全部
我们有一套很复杂的系统。也没有出现过你这样的问题。

你不要考虑什么事务。如果是复杂的数据UPDATA你需要考虑其他方式实现。不能在客户端计算好了再更新。
追问
循环会和回滚内的update、insert语句冲突吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
抱抱的爸爸
2012-05-02 · 超过24用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:54.5万
展开全部
SQL.Add(Update 库存表 语句);
ExecSQL;
别用update了,直接select,然后edit,赋值,最后post
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zpue1234
2012-05-02 · 超过29用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:66.9万
展开全部
my god 我都看不懂唉,天文啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式