zoukankan      html  css  js  c++  java
  • 在更新之后最好有个判断 看是否更新上 编码码自动生成

    function NewID(sYWID: string; sID: string; iInc: Integer; bUseNewConn: Boolean): String;
    var
      qryTmp: TRSQuery;
      fValue, fOldValue: Extended;
      NewDB: TADOConnection;
    begin
      fValue := 1;
      if Trim(sYWID) = '' then sYWID := ' ';
      if Trim(sID) = '' then sID := ' ';
      NewDB := TADOConnection.Create(nil);
      qryTmp := TRSQuery.Create(nil);
      try
        NewDB.LoginPrompt := False;
        NewDB.ConnectionString := MainDB.ConnectionString;
        if bUseNewConn then
          qryTmp.Connection := NewDB
        else
          qryTmp.Connection := MainDB;
        qryTmp.SQL.Add('select RSHAREID_VALUE from RSHAREID');
        qryTmp.SQL.Add('where RSHAREID_YWID=:pYWID and RSHAREID_ID=:pID');
        qryTmp.Parameters.ParamByName('pYWID').Value := sYWID;
        qryTmp.Parameters.ParamByName('pID').Value := sID;
        qryTmp.Open;
        if qryTmp.IsEmpty then
        begin
          try
            qryTmp.Close;
            qryTmp.SQL.Clear;
            qryTmp.SQL.Add('insert into RSHAREID(RSHAREID_YWID, RSHAREID_ID, RSHAREID_VALUE)');
            qryTmp.SQL.Add('values(:pYWID, :pID, :pVALUE)');
            qryTmp.Parameters.ParamByName('pYWID').Value := sYWID;
            qryTmp.Parameters.ParamByName('pID').Value := sID;
            qryTmp.Parameters.ParamByName('pVALUE').Value := iInc;
            qryTmp.ExecSQL;
          except
            NewID(sYWID, sID);
          end;
        end
        else
        begin
          fValue := qryTmp.FieldByName('RSHAREID_VALUE').AsFloat + 1;
          fOldValue := qryTmp.FieldByName('RSHAREID_VALUE').AsFloat;
          try
            qryTmp.Close;
            qryTmp.SQL.Clear;
            qryTmp.SQL.Add('update RSHAREID set RSHAREID_VALUE =:pVALUE');
            qryTmp.SQL.Add('where RSHAREID_YWID=:pYWID and RSHAREID_ID=:pID');
            qryTmp.SQL.Add('  and RSHAREID_VALUE =:pOldValue');
            qryTmp.Parameters.ParamByName('pYWID').Value := sYWID;
            qryTmp.Parameters.ParamByName('pID').Value := sID;
            qryTmp.Parameters.ParamByName('pOldValue').Value := fOldValue;
            qryTmp.Parameters.ParamByName('pVALUE').Value := fValue + iInc - 1;
            qryTmp.ExecSQL;
            if qryTmp.RowsAffected = 0 then
              NewID(sYWID, sID);
          except
            NewID(sYWID, sID);
          end;
        end;
        Result := FloatToStr(fValue);
      finally
        qryTmp.Close;
        FreeAndNil(qryTmp);
        NewDB.Close;
        FreeAndNil(NewDB);
      end;
    end;

  • 相关阅读:
    Codeforces Round #273 (Div. 2) B . Random Teams 贪心
    Codeforces Round #250 (Div. 2)B. The Child and Set 暴力
    Codeforces Round #250 (Div. 1) B. The Child and Zoo 并查集
    微信小程序从零开始开发步骤(二)创建小程序页面
    微信小程序从零开始开发步骤(二)创建小程序页面
    微信小程序从零开始开发步骤(一)搭建开发环境
    微信小程序从零开始开发步骤(一)搭建开发环境
    七个帮助你处理Web页面层布局的jQuery插件
    前端切图:CSS实现隐藏滚动条同时又可以滚动
    前端切图:CSS实现隐藏滚动条同时又可以滚动
  • 原文地址:https://www.cnblogs.com/FuYan/p/3192880.html
Copyright © 2011-2022 走看看