用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的错误,请问这问题怎么解决。有其他的方式也可以,只要实现这个功能