十万火急!!!!!一个小问题,大家帮忙啊,小弟先谢谢了

sunnauq 2004-06-09 09:20:38
用delphi开发一个midas服务器,实现三层系统,我想再服务器端之心一组sql语句,并且需要事务处理。我是这样实现的,再客户端建立一个variant数组然后传递给服务器端执行,但是代码有时候能执行,有时候不能执行,读数组元素时老是出错。下面是代码
procedure TrdmAppserver.executesql(sql: OleVariant);
var
i: integer;
qry: TQuery;
begin
qry := TQuery.Create(self);
try
qry.DatabaseName := 'lkmis';
if varisarray(sql) then
begin
lkmis.StartTransaction;
try
for i := varArrayLowBound(sql,1) to varArrayHighBound(sql,1) do
begin
qry.Close;
qry.SQL.Clear;
qry.SQL.Add(sql[i]);
qry.ExecSQL;
end;
lkmis.Commit;
return := true;
except
on e:exception do
begin
lkmis.Rollback;
saveerror('executesql','执行sql语句'''+ sql +'时出错,错误信息:' + e.Message);
end;
end;
end else
begin
try
if qry.active then
qry.close;
qry.SQL.Text := sql;
qry.ExecSQL;
return := true;
except
on e:exception do
begin
saveerror('executesql','执行sql语句'''+ sql +'时出错,错误信息:' + e.Message);
end;
end;
end;
finally
qry.Free;
end;
end;

客户端
sqls := vararrayCreate([0,2],varVariant);
sqls[0] := '....';
sqls[1] := '....';
sqls[2] := '....';
档调用服务器端方法时有时回出现 invalid variant operation的错误,请问这问题怎么解决。有其他的方式也可以,只要实现这个功能
...全文
71 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yueshujiang 2004-06-09
  • 打赏
  • 举报
回复
看不懂呀
sunnauq 2004-06-09
  • 打赏
  • 举报
回复

代码重的return := true 已经去掉,情大家帮忙看看,问题很急,在线等待

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧