标签:io os ar sp on log cti ad as
function TServerMethods1.ExecuteSql(const sql: String): Boolean;
var
  d: TfrmDB;
begin
  d := DBPool.Lock;
  if Assigned(d) then
  begin
    try
      try
        d.qry.Close;
        d.qry.sql.Clear;
        d.qry.sql.Text := sql;
        d.qry.ExecSQL;
        Result := true;
      except
        on e: Exception do
        begin
          Result := false;
          Log.WriteLog(‘TServerMethods1.ExecuteSql ‘ + e.Message);
        end;
      end;
    finally
      DBPool.Unlock(d);
    end;
  end
  else
  begin
    Result := false;
  end;
end;
function TServerMethods1.QuerySql(const sql: String): OleVariant;
var
  d: TfrmDB;
begin
  d := DBPool.Lock;
  if Assigned(d) then
  begin
    try
      try
        d.qry.Close;
        d.qry.sql.Clear;
        d.qry.sql.Text := sql;
        d.qry.Open;
        Result := d.dsp.Data;
      except
        on e: Exception do
        begin
          Result := null;
          Log.WriteLog(‘TServerMethods1.QuerySql ‘ + e.Message);
        end;
      end;
    finally
      DBPool.Unlock(d);
    end;
  end
  else
  begin
    Result := null;
  end;
end;
function TServerMethods1.QuerySql2(const sql: string): TFDJSONDataSets;
var
  d: TfrmDB;
begin
  d := DBPool.Lock;
  if Assigned(d) then
  begin
    try
      try
        d.qry.Close;
        d.qry.sql.Clear;
        d.qry.Open(sql);
        Result := TFDJSONDataSets.Create;
        TFDJSONDataSetsWriter.ListAdd(Result, d.qry);
      except
        on e: Exception do
        begin
          Result := nil;
          Log.WriteLog(‘TServerMethods1.QuerySql2 ‘ + e.Message);
        end;
      end;
    finally
      DBPool.Unlock(d);
    end;
  end
  else
    Result := nil;
end;
function TServerMethods1.SaveData(const tableName: String;
  delta: OleVariant): Boolean;
var
  d: TfrmDB;
  errCnt: Integer;
begin
  d := DBPool.Lock;
  if Assigned(d) then
  begin
    try
      try
        d.qry.Close;
        d.qry.sql.Clear;
        d.qry.sql.Text := ‘select * from ‘ + tableName + ‘ where 1=2‘;
        d.qry.Open;
        d.dsp.ApplyUpdates(delta, 0, errCnt);
        if errCnt = 0 then
          Result := true
        else
          Result := false;
      except
        on e: Exception do
        begin
          Result := false;
          Log.WriteLog(‘TServerMethods1.SaveData ‘ + e.Message);
        end;
      end;
    finally
      DBPool.Unlock(d);
    end;
  end
  else
  begin
    Result := false;
  end;
end;
function TServerMethods1.SaveData2(const tableName: string;
  delta: TFDJSONDeltas): Boolean;
var
  d: TfrmDB;
  LApply: IFDJSONDeltasApplyUpdates;
begin
  d := DBPool.Lock;
  if Assigned(d) then
  begin
    try
      try
        d.qry.Close;
        d.qry.sql.Clear;
        d.qry.sql.Text := ‘select * from ‘ + tableName + ‘ where 1=2‘;
        d.qry.Open;
        LApply := TFDJSONDeltasApplyUpdates.Create(delta);
        LApply.ApplyUpdates(tableName, d.qry.Command);
        Result := LApply.Errors.Count = 0;
      except
        on e: Exception do
        begin
          Result := false;
          Log.WriteLog(‘TServerMethods1.SaveData2 ‘ + e.Message);
        end;
      end;
    finally
      DBPool.Unlock(d);
    end;
  end
  else
    Result := false;
end;
标签:io os ar sp on log cti ad as
原文地址:http://www.cnblogs.com/hnxxcxg/p/4050461.html