⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untcommons.pas

📁 车辆管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  Result:=formatDatetime('yyyy-MM-dd hh:mm:ss',now());
end;

function Tcommons.GetUserName(const DBName, UserCode,
  PassWord: WideString): WideString;
var
  cmdStr:String;
  AdoQ:Tadoquery;
begin
  try
    cmdStr:='select fname from tuser where fcode='+vartosql(UserCode)+' and fpwd='+vartosql(Password);
    AdoQ:=GetNewAdoquery;
    if OpenindicatinnDB(DBname) then
      begin
        aopensql:=Topensql.create(AdoQ,cmdStr);
        aopensql.Execute;
        if AdoQ.RecordCount>0 then
          Result:=Adoq.fieldbyname('fname').AsString
          else
          Result:='';
      end
      else
        Result:='';
  finally
    FreeExistAdoquery(AdoQ);
    Aopensql.Free;
  end;
end;

function Tcommons.GetUserRight(const DBName: WideString;
  UserID: Integer): OleVariant;
var
  CL:TRTLCriticalSection;
  Q:Tadoquery;
  CDS:Tclientdataset;
  DSP:Tdatasetprovider;
  cmdStr:String;
begin
  try
    InitializeCriticalSection(CL);
    EnterCriticalSection(CL);
    cmdStr:='Exec pGetRight :@UserID';
    Q:=GetNewAdoquery;
    CDS:=GetNewClientdataset;
    DSP:=GetNewDatasetProvider;
    CDS.Active:=False;
    if OpenindicatinnDB(DBname) then
    begin
      DSP.DataSet:=Q;
      CDS.SetProvider(DSP);
      Q.Close;
      Q.SQL.Clear;
      Q.SQL.Text:=CmdStr;
      Q.Parameters.ParamByName('@UserID').Value:=UserID;
      CDS.Active:=True;
      Result:=CDS.Data;
    end;
  finally
    FreeExistClientDataset(CDS);
    FreeExistDatasetProvider(DSP);
    FreeExistAdoquery(Q);
    LeaveCriticalSection(CL);
  end;
end;

function Tcommons.GetVehicleStatus(const DBName: WideString): OleVariant; safecall;
var
  CL:TRTLCriticalSection;
  Q:Tadoquery;
  CDS:Tclientdataset;
  DSP:Tdatasetprovider;
  cmdStr:String;
begin
  try
    InitializeCriticalSection(CL);
    EnterCriticalSection(CL);
    cmdStr:='Exec phastenvehicle';
    Q:=GetNewAdoquery;
    CDS:=GetNewClientdataset;
    DSP:=GetNewDatasetProvider;
    CDS.Active:=False;
    if OpenindicatinnDB(DBname) then
    begin
      DSP.DataSet:=Q;
      CDS.SetProvider(DSP);
      Q.Close;
      Q.SQL.Clear;
      Q.SQL.Text:=CmdStr;
      CDS.Active:=True;
      Result:=CDS.Data;
    end;
  finally
    FreeExistClientDataset(CDS);
    FreeExistDatasetProvider(DSP);
    FreeExistAdoquery(Q);
    LeaveCriticalSection(CL);
  end;
end;

function Tcommons.GetVIPID(const DBName: WideString;
  CustomerID: Integer): Integer;
var
  cmdStr:String;
  AdoQ:Tadoquery;
begin
  try
    cmdStr:='Select fID from tvip where fCustomerID='+Vartosql(CustomerID);
    AdoQ:=GetNewAdoquery;
    if OpenindicatinnDB(DBname) then
      begin
        aopensql:=Topensql.create(AdoQ,cmdStr);
        aopensql.Execute;
        if AdoQ.RecordCount>0 then
          Result:=AdoQ.fieldbyname('fid').AsInteger
          else
          Result:=0;
      end
      else
        Result:=0;
  finally
    FreeExistAdoquery(AdoQ);
    Aopensql.Free;
  end;
end;

function Tcommons.IntransAction: boolean;
begin
  if DMServer.AdoConMain.InTransaction then
    Result:=True
    else
    Result:=False;
end;

function Tcommons.IsUnique(const DBName, TableName, MasterField,
  CheckValue: WideString): WordBool;
var
  cmdStr:String;
  AdoQ:Tadoquery;
begin
  try
    cmdStr:='Select '+MasterField+' from '+TableName+' where '+MasterField+'='+Vartosql(CheckValue);
    AdoQ:=GetNewAdoquery;
    if OpenindicatinnDB(DBname) then
      begin
        aopensql:=Topensql.create(AdoQ,cmdStr);
        aopensql.Execute;
        if AdoQ.RecordCount>0 then
          Result:=True
          else
          Result:=False;
      end
      else
        Result:=False;
  finally
    FreeExistAdoquery(AdoQ);
    Aopensql.Free;
  end;
end;

function Tcommons.IsVip(const DBName: WideString; Cid: Integer): WordBool;
var
  cmdStr:String;
  AdoQ:Tadoquery;
begin
  try
    cmdStr:='Select fcustomerID from tvip where fcustomerID='+Vartosql(Cid);
    AdoQ:=GetNewAdoquery;
    if OpenindicatinnDB(DBname) then
      begin
        aopensql:=Topensql.create(AdoQ,cmdStr);
        aopensql.Execute;
        if AdoQ.RecordCount>0 then
          Result:=True
          else
          Result:=False;
      end
      else
        Result:=False;
  finally
    FreeExistAdoquery(AdoQ);
    Aopensql.Free;
  end;
end;

function Tcommons.OpenindicatinnDB(DBname:String):Boolean;
var
  Q:Tadoquery;
begin
  Result:=False;
  if DBname='' then
    DBname:='Master';
  try
    Q:=Tadoquery.Create(nil);
    Q.Connection:=DmServer.AdoConMain;
    with Q do
      begin
        Close;
        sql.Clear;
        Sql.Text:='Use '+DBname;
        Execsql;
      end;
      Result:=True;
  finally
    Q.Close;
    Q.SQL.Clear;
    Q.Free;
  end;
end;

procedure Tcommons.RollbackTrans;
begin
  dmServer.AdoConMain.RollbackTrans;
end;

function Tcommons.SysLog(const DBName,Fstate,Fform, Fevent, Fuser,
  Fpcname: WideString): WordBool;
const
  fdate='yyyy-MM-dd';
  ftime='hh:mm:ss';
var
  sqlstr:String;
  AdoQ:Tadoquery;
  fMts:TstatusThread;
begin
try
  if DBName='MASTER' then
  begin
    sqlstr:='';
  end
  else
  sqlstr:='Insert into tsyslog(fstate,fdate,ftime,fform,fevent,fuser,fpcname) values('
          +vartosql(fstate)+','
          +vartosql(formatDatetime(fdate,now()))+','
          +vartosql(formatDatetime(ftime,now()))+','
          +vartosql(fform)+','
          +vartosql(fevent)+','
          +vartosql(fuser)+','
          +vartosql(fpcname)+')';
  AdoQ:=GetnewAdoquery;

  if openindicatinnDB(DBName) then
    begin
      aexecSQL:=Texecsql.Create(adoq,sqlstr);
      aexecsql.Execute;
      fMts:=TstatusThread.Create(fuser,fform,'Normal',fevent);
      Result:=True;
    end
    else
    begin
      fMts:=TstatusThread.Create(fuser,fform,'Failed',fevent);
      Result:=False;
    end;
finally
  freeExistAdoquery(adoq);
  aexecsql.Free;
end;
end;

function Tcommons.vartosql(value: Variant): String;
begin
  if varisnull(Value) then
    Result:='NULL'
    else
    case Vartype(value) of
      varDate:
        Result:=Quotedstr(Datetimetostr(VartoDatetime(Value)));
      varString,varOlestr:
        Result:=Quotedstr(Trim(Vartostr(Value)));
      varboolean:
        begin
          if Value then
            Result:='1'
            else
            Result:='0';
        end;
      else
        Result:=Quotedstr(Trim(Vartostr(Value)));
      end;
end;

function Tcommons.VehicleRent(const DBName, Vcode, Sdate, Edate: WideString): OleVariant;
var
  CL:TRTLCriticalSection;
  Q:Tadoquery;
  CDS:Tclientdataset;
  DSP:Tdatasetprovider;
  cmdStr:String;
begin
  try
    InitializeCriticalSection(CL);
    EnterCriticalSection(CL);
    cmdStr:='Exec pVehicleRentQuery :@Vcode,:@Sdate,:@Edate';
    Q:=GetNewAdoquery;
    CDS:=GetNewClientdataset;
    DSP:=GetNewDatasetProvider;
    CDS.Active:=False;
    if OpenindicatinnDB(DBname) then
    begin
      DSP.DataSet:=Q;
      CDS.SetProvider(DSP);
      Q.Close;
      Q.SQL.Clear;
      Q.SQL.Text:=CmdStr;
      Q.Parameters.ParamByName('@Vcode').Value:=Vcode;
      Q.Parameters.ParamByName('@Sdate').Value:=Sdate;
      Q.Parameters.ParamByName('@Edate').Value:=Edate;
      CDS.Active:=True;
      Result:=CDS.Data;
    end;
  finally
    FreeExistClientDataset(CDS);
    FreeExistDatasetProvider(DSP);
    FreeExistAdoquery(Q);
    LeaveCriticalSection(CL);
  end;
end;

function Tcommons.WriteBalance(const DBName: WideString; pStatus,
  pBillStatus: Integer; const pNo, pBillName: WideString;
  pCusTomerID: Integer; const pRemark: WideString; pOverk, Poverf,
  Povert, pHire, pMortgage, pPMortgage, pPMainTain, pPBenZine,
  pPOther: Single; const pCreaUser: WideString): WordBool;
var
  sqlstr:String;
  AdoQ:Tadoquery;
begin
  sqlstr:='';
try
  case pStatus of
    1:
       Begin
          sqlStr:= sqlStr+'Insert into tBalance(fBillStatus,fno,fBillName,';
          sqlStr:= sqlStr+'fDate,fCustomerID,fRemark,fOverK,fOverf,fOvert,';
          sqlStr:= sqlStr+'fHire,fMortgage,fPmortgage,fpMainTain,';
          sqlStr:= sqlStr+'fpBenZine,fpOther,fCreaUser,fOrderFlag) values('
          +vartosql(pBillStatus)+','
          +vartosql(pno)+','
          +vartosql(pBillName)+','
          +vartosql(GetServerTime)+','
          +vartosql(pCustomerID)+','
          +vartosql(pRemark)+','
          +vartosql(pOverk)+','
          +vartosql(pOverf)+','
          +vartosql(pOvert)+','
          +vartosql(pHire)+','
          +vartosql(pMortgage)+','
          +vartosql(ppMortgage)+','
          +vartosql(ppMaintain)+','
          +vartosql(ppBenZine)+','
          +vartosql(ppOther)+','
          +vartosql(pCreaUser)+','
          +vartosql(1)+')';
       end;
    2:
       Begin
          sqlstr:=sqlstr+' Update tBalance set fOrderFlag=0,fnote='+vartosql('该单据被'+pCreaUser+'修改,不能入帐。最后修改时间为'+GetServerTime());
          sqlstr:=sqlstr+' where fno='+vartosql(pNo)+' and fid=(Select max(fid) as fid from tBalance where fno='+Vartosql(pno)+')';
          sqlStr:= sqlStr+'  Insert into tBalance(fBillStatus,fno,fBillName,';
          sqlStr:= sqlStr+'fDate,fCustomerID,fRemark,fOverK,fOverf,fOvert,';
          sqlStr:= sqlStr+'fHire,fMortgage,fPmortgage,fpMainTain,';
          sqlStr:= sqlStr+'fpBenZine,fpOther,fModiUser,fOrderFlag) values('
          +vartosql(pBillStatus)+','
          +vartosql(pno)+','
          +vartosql(pBillName)+','
          +vartosql(GetServerTime)+','
          +vartosql(pCustomerID)+','
          +vartosql(pRemark)+','
          +vartosql(pOverk)+','
          +vartosql(pOverf)+','
          +vartosql(pOvert)+','
          +vartosql(pHire)+','
          +vartosql(pMortgage)+','
          +vartosql(ppMortgage)+','
          +vartosql(ppMaintain)+','
          +vartosql(ppBenZine)+','
          +vartosql(ppOther)+','
          +vartosql(pCreaUser)+','
          +vartosql(1)+')';
       end;
    3:
       begin
          sqlstr:=sqlstr+' Update tBalance set fOrderFlag=0,fnote='+vartosql('该单据被'+pCreaUser+'删除,不能入帐。最后删除时间为'+GetServerTime());
          sqlstr:=sqlstr+' where fno='+vartosql(pNo)+' and fid=(Select max(fid) as fid from tBalance where fno='+Vartosql(pno)+')';
       end;
  end;
  AdoQ:=GetnewAdoquery;
  if openindicatinnDB(DBName) then
    begin
      aexecSQL:=Texecsql.Create(adoq,sqlstr);
      aexecsql.Execute;
      Result:=True;
    end
    else
      begin
        Result:=False;
      end;
finally
  freeExistAdoquery(adoq);
  aexecsql.Free;
end;
end;

function Tcommons.WriteDraft(const DBName: WideString; pStatus: Integer;
  const pBillName, pBillNo, pBillSelfNo, pCompany, pRemark,
  pCreaUser: WideString): WordBool;
var
  sqlstr:String;
  AdoQ:Tadoquery;
begin
try
  case pStatus of
    1:
  sqlstr:='Insert into tDraft(fdate,fbillName,fbillNo,fbillSelfNo,fCompany,fRemark,fCreaUser) values('
          +vartosql(GetServerTime)+','
          +vartosql(pBillName)+','
          +vartosql(pBillNo)+','
          +vartosql(pBillSelfNo)+','
          +vartosql(pCompany)+','
          +vartosql(pRemark)+','
          +vartosql(pCreaUser)+')';
    2:
  sqlstr:='update tDraft set fdate='+vartosql(GetServerTime)+','+
                            'fbillSelfNo='+vartosql(pBillSelfNo)+','+
                            'fCompany='+vartosql(pCompany)+','+
                            'fRemark='+vartosql(pRemark)+','+
                            'fModiUser='+vartosql(pCreaUser)+
                            ' where fBillno='+vartosql(pbillNo);

    3:
  sqlstr:='Delete tDraft where fbillNo='+vartosql(pbillNo);
  end;
  AdoQ:=GetnewAdoquery;
  if openindicatinnDB(DBName) then
    begin
      aexecSQL:=Texecsql.Create(adoq,sqlstr);
      aexecsql.Execute;
      Result:=True;
    end
    else
      begin
        Result:=False;
      end;
finally
  freeExistAdoquery(adoq);
  aexecsql.Free;
end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -