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

📄 unit_public_1.pas

📁 一个不错的源程序DELPHI开发的,功能比较好的客户管理系统
💻 PAS
📖 第 1 页 / 共 5 页
字号:
//初始设计者    : 曾忠诚
//模块名称      : 数据库连接名称
//模块功能      : 根据数局的用户名称得到连接当前数据库用户的database
//输入          : 数据库用户名称
//输出          : 连接到了数据数据库用户的database
//------------------------------------------------------------------------
var
   i : Integer ;
   Str : String ;
begin
  for i := 0 to Session.DatabaseCount - 1 do
  begin
    Str := Session.Databases[i].Params.Values['USER NAME'];
    if Pos(PS_ConnectUserName , Str) > 0   Then
    begin
      Result := Session.Databases[i] ;
      Break;
    End;
  end;
end;

{
*****************************************************************
*                                                               *
*   编写作者:陈庆波              编写时间:2002-06-25          *
*                                                               *
*   函数名称:Pro_GFillInitValue                                *
*   内容版本:V1.0.0.0                                          *
*   函数功能:初始化窗体下拉框的值                              *
*   传入参数:pFormName、pValue                                 *
*   参数说明:                                                  *
*             pFormName   窗体名称(Self)                        *
*             pValue      附加值          默认值:空            *
*                                                               *
*   返 回 值:无                                                *
*                                                               *
*   基本要求:                                                  *
*           必须在下拉框TAG属性中,登记相应的标记(标记说明见下) *
*                                                               *
*   注意事项:                                                  *
*                                                               *
*   可使用控件:TFlatCombobox、TCombobox                        *
*                                                               *
*   Tag标记说明:                                               *
*            20   性别                                          *
*            21   民族                                          *
*            22   学历                                          *
*            23   婚姻情况                                      *
*            24   入网渠道                                      *
*            25   出账类别                                      *
*            26   品牌                                          *
*            27   消费等级                                      *
*            28   客户状态                                      *
*            29   行业                                          *
*            30   话费报销                                      *
*            31   喜好类别                                      *
*            32   兴趣类别                                      *
*            33   付款方式                                      *
*            34   客户类别                                      *
*                                                               *
*   相关函数:Fun_GAUpdateValue                                 *
*                                                               *
*****************************************************************
}
Procedure Pro_GFillInitValue(pFormName:TForm;pValue:String='');
Var
   I:Integer;
   QueryDictDesc:TQuery;
Begin
   Application.CreateForm(TQuery,QueryDictDesc);
   QueryDictDesc.DatabaseName:= session.Databases[0].DatabaseName;
   For I:=0 To pFormName.ComponentCount-1 Do
      If (pFormName.Components[I].ClassName='TFlatComboBox') Or
         (pFormName.Components[I].ClassName='TComboBox') Then
         Begin
            If (pFormName.Components[I].Tag>=20) And (pFormName.Components[I].Tag<=50) Then
               Begin
                  TComboBox(pFormName.Components[I]).Clear;             //清楚控件内的值
                  If pValue<>'' Then
                     TCombobox(pFormName.Components[I]).Items.Add(pValue);
               End;

            If QueryDictDesc.Active Then QueryDictDesc.Close;     //判断QueryDictDesc是否打开,如果打开则关闭
            QueryDictDesc.SQL.Clear;

            //性别
            If pFormName.Components[I].Tag=20 Then
               QueryDictDesc.SQL.Add('Select Par_Desc From T_D_Config Where Upper(Par_Name)=''SEX''');
            //民族
            If pFormName.Components[I].Tag=21 Then
               QueryDictDesc.SQL.Add('Select Par_Desc From T_D_Config Where Upper(Par_Name)=''FOLK''');
            //学历
            If pFormName.Components[I].Tag=22 Then
               QueryDictDesc.SQL.Add('Select Par_Desc From T_D_Config Where Upper(Par_Name)=''DIPLOMA_ID''');
            //婚姻情况
            If pFormName.Components[I].Tag=23 Then
               QueryDictDesc.SQL.Add('Select Par_Desc From T_D_Config Where Upper(Par_Name)=''MARRIAGE''');
            //入网渠道
            If pFormName.Components[I].Tag=24 Then
               QueryDictDesc.SQL.Add('Select Par_Desc From T_D_Config Where Upper(Par_Name)=''MARRIAGE''');
            //出帐类别
            If pFormName.Components[I].Tag=25 Then
               QueryDictDesc.SQL.Add('Select Par_Desc From T_D_Config Where Upper(Par_Name)=''OUTACCOUNTTYPE''');

            //品牌名称
            If pFormName.Components[I].Tag=26 Then
               QueryDictDesc.SQL.Add('Select Par_Desc From T_D_Config Where Upper(Par_Name)=''BRANDNAME''');
            //消费等级
            If pFormName.Components[I].Tag=27 Then
               QueryDictDesc.SQL.Add('Select DESCRIPTION From T_D_grade');
            //客户状态
            If pFormName.Components[I].Tag=28 Then
               QueryDictDesc.SQL.Add('Select Par_Desc From T_D_Config Where Upper(Par_Name)=''CUSTSTATUS''');
            //行业
            If pFormName.Components[I].Tag=29 Then
               QueryDictDesc.SQL.Add('Select Par_Desc From T_D_Config Where Upper(Par_Name)=''GROUPCALLING''');
            //话费报销类型
            If pFormName.Components[I].Tag=30 Then
               QueryDictDesc.SQL.Add('Select Par_Desc From T_D_Config Where Upper(Par_Name)=''MARRIAGE''');
            //喜好人类别
            If pFormName.Components[I].Tag=31 Then
//               QueryDictDesc.SQL.Add('Select IndiServ From T_D_IndiService');
            //兴趣大类
            If pFormName.Components[I].Tag=32 Then
//               QueryDictDesc.SQL.Add('Select IndiCaption From T_D_IndiTop');
            //付款方式
            If pFormName.Components[I].Tag=33 Then
               QueryDictDesc.SQL.Add('Select Par_Desc From T_D_Config Where Upper(Par_Name)=''PAYMENTMODE''');
            //个人客户类别
            If pFormName.Components[I].Tag=34 Then
               QueryDictDesc.SQL.Add('Select Par_Desc From T_D_Config Where Upper(Par_Name)=''CUSTATT''');
            //集团客户类别
            If pFormName.Components[I].Tag=35 Then
               QueryDictDesc.SQL.Add('Select Par_Desc From T_D_Config Where Upper(Par_Name)=''GROUPATT''');

            If QueryDictDesc.Text<>'' Then
               Begin
                  QueryDictDesc.SQL.SaveToFile('c:\123.txt');
                  QueryDictDesc.Open;

                  While Not QueryDictDesc.Eof Do
                     Begin
                        TComboBox(pFormName.Components[I]).Items.Add(Trim(QueryDictDesc.Fields[0].AsString));
                        QueryDictDesc.Next;
                     End;
                  QueryDictDesc.Close;
               End;
         End;
   QueryDictDesc.Free;

end;


//陈庭昀
Function Fun_GetCodeName(pObject:TObject;pValue:String=''):String;
Var
   I:Integer;
   SDesc:String;
   QueryDictValue:TQuery;
   f_Field01,f_Field02:String;
Begin
   Application.CreateForm(TQuery,QueryDictValue);
   QueryDictValue.DatabaseName:=session.Databases[0].DatabaseName;

   If (pObject Is TFlatComboBox) Or (pObject Is TComboBox) Then
      Begin
         If pValue='' Then
            Begin
               SDesc:=Trim(TComboBox(pObject).Text);
               f_Field01:='PAR_VALUES';
               f_Field02:='PARA_DESC';
            End
         Else
            Begin
               f_Field01:='PARA_DESC';
               f_Field02:='PAR_VALUES';
               SDesc:=pValue;
            End;   

         If QueryDictValue.Active Then QueryDictValue.Close;
         QueryDictValue.SQL.Clear;

         //性别
         If TCombobox(pObject).Tag=20 Then
            QueryDictValue.SQL.Add('Select '+f_Field01+' From T_D_Config Where Upper(Trim(PAR_Name))=''SEX'' And Upper(Trim('+f_Field02+'))=Upper('''+SDesc+''')');
         //民族
         If TCombobox(pObject).Tag=21 Then
            QueryDictValue.SQL.Add('Select '+f_Field01+' From T_D_Config Where Upper(Trim(Par_Name)=''FOLK'' And Upper(Trim('+f_Field02+'))=Upper('''+SDesc+''')');
          //学历
         If TCombobox(pObject).Tag=22 Then
            QueryDictValue.SQL.Add('Select '+f_Field01+' From T_D_Config Where Upper(Trim(Par_Name)=''DIPLOMA_ID'' And Upper(Trim('+f_Field02+'))=Upper('''+SDesc+''')');
         //婚姻状况
         If TCombobox(pObject).Tag=23 Then
            QueryDictValue.SQL.Add('Select '+f_Field01+' From T_D_Config Where Upper(Trim(Par_Name)=''MARRIAGE'' And Upper(Trim('+f_Field02+'))=Upper('''+SDesc+''')');
         //入网渠道
//         If TCombobox(pObject).Tag=24 Then
//            QueryDictValue.SQL.Add('Select '+f_Field01+' From T_D_Config Where Upper(Trim(Par_Name)=''MARRIAGE'' And Upper(Trim('+f_Field02+'))=Upper('''+SDesc+''')');
         //出帐类别
         If TCombobox(pObject).Tag=25 Then
            QueryDictValue.SQL.Add('Select '+f_Field01+' From T_D_Config Where Upper(Trim(Par_Name)=''OUTACCOUNTTYPT'' And Upper(Trim('+f_Field02+'))=Upper('''+SDesc+''')');
         //品牌
         If TCombobox(pObject).Tag=26 Then
            QueryDictValue.SQL.Add('Select '+f_Field01+' From T_D_Config Where Upper(Trim(Par_Name)=''BRANDNAME'' And Upper(Trim('+f_Field02+'))=Upper('''+SDesc+''')');
         //消费等级
         If TCombobox(pObject).Tag=27 Then
            If pValue='' Then
               QueryDictValue.SQL.Add('Select GRADENO From T_D_GRADE Where Trim(DESCRIBLE)=Upper('''+SDesc+''')')
            Else
               QueryDictValue.SQL.Add('Select DESCRIPTION From T_D_GRADE Where Trim(GRADENO)=Upper('''+SDesc+''')');
         //客户状态
         If TCombobox(pObject).Tag=28 Then
            QueryDictValue.SQL.Add('Select '+f_Field01+' From T_D_Config Where Upper(Trim(Par_Name)=''CUSTSTATUS'' And Upper(Trim('+f_Field02+'))=Upper('''+SDesc+''')');
        //行业
         If TCombobox(pObject).Tag=29 Then
            QueryDictValue.SQL.Add('Select '+f_Field01+' From T_D_Config Where Upper(Trim(Par_Name)=''GROUPCALLING'' And Upper(Trim('+f_Field02+'))=Upper('''+SDesc+''')');
         //话费报销类型
//         If TCombobox(pObject).Tag=30 Then
//            If pValue='' Then
//               QueryDictValue.SQL.Add('Select WO_TYPE_ID From TS_WO_TYPE Where Trim(WO_TYPE_NAME)=Upper('''+SDesc+''')')
//            Else
//               QueryDictValue.SQL.Add('Select WO_TYPE_NAME From TS_WO_TYPE Where Trim(WO_TYPE_ID)=Upper('''+SDesc+''')');
         //喜爱人类别
//         If TCombobox(pObject).Tag=31 Then
//            If pValue='' Then
//               QueryDictValue.SQL.Add('Select PAR_VALUES From T_D_Config Where Upper(Trim(PARA_CODE))=''USERTYPE'' And Upper(Trim(PAR_DESC))=Upper('''+SDesc+''')')
//            Else
//               QueryDictValue.SQL.Add('Select PAR_DESC From T_D_Config Where Upper(Trim(PARA_CODE))=''USERTYPE'' And Upper(Trim(PAR_VALUES))=Upper('''+SDesc+''')');
         //兴趣大类
//         If TCombobox(pObject).Tag=32 Then
//            If pValue='' Then
//               QueryDictValue.SQL.Add('Select FAV_ID From TS_FAV Where Trim(FAV_NAME)=Upper('''+SDesc+''')')
//            Else
//               QueryDictValue.SQL.Add('Select FAV_NAME From TS_FAV Where Trim(FAV_ID)=Upper('''+SDesc+''')');
         //付款方式
         If TCombobox(pObject).Tag=33 Then
            QueryDictValue.SQL.Add('Select '+f_Field01+' From T_D_Config Where Upper(Trim(Par_Name)=''PAYMENTMODE'' And Upper(Trim('+f_Field02+'))=Upper('''+SDesc+''')');
         //个人客户类别
         If TCombobox(pObject).Tag=34 Then
            QueryDictValue.SQL.Add('Select '+f_Field01+' From T_D_Config Where Upper(Trim(Par_Name)=''CUSTATT'' And Upper(Trim('+f_Field02+'))=Upper('''+SDesc+''')');
         //集团客户类别
         If TCombobox(pObject).Tag=34 Then
            QueryDictValue.SQL.Add('Select '+f_Field01+' From T_D_Config Where Upper(Trim(Par_Name)=''GROUPATT'' And Upper(Trim('+f_Field02+'))=Upper('''+SDesc+''')');

         If QueryDictValue.Text<>'' Then
           Begin
              QueryDictValue.Open;
              If Not (QueryDictValue.Eof And QueryDictValue.Bof) Then
                 Result:=Trim(QueryDictValue.Fields[0].AsString)
              Else
                 Result:='';
           End
         Else
           Result:='';

         QueryDictValue.Close;
      End;
   QueryDictValue.Free;
End;

{
********************************************************************
*   编写作者:黄志文       编写日期:2002-06-24                    *
*   函数名称:Fun_GExecSqlText                                     *
*   函数功能:根据传入的Sql语句参数执行相应的增、删、改、查询操作。*
*   传入参数:SSqlText(sql语句), SModu(模块名), STag : string                       *
*   参数说明:STag : 默认值为-1                                    *
*             1 : 新增, 2:修改, 3:删除                         *
*             SSqlText : 要执行的脚本.                             *
*             SModu : 进行增删改操作的模块名                       *
*   返 回 值:执行成功或失败标志。                                 *
*   返回格式:String  -1:失败,0:成功                                             *
*   基本要求:无                                                   *
*   注意事项:无                                                   *
********************************************************************
}
function Fun_GExecSqlText(SSqlText, SModu : string; STag : integer=-1) : integer;
Var
  Qu_Exec: TQuery;//声明QUERY构件,通过QUERY执行相应的语句。
  SDateTime : String;
begin
  Result := -1;//默认返回是失败的。
  //or ((STag = 1) and (pos('insert', SSqlText) < 0)) or ((STag = 2) and (pos('update', SSqlText) < 0)) or ((STag = 3) and (pos('delete', SSqlText) < 0)) or ((STag = 3) and (pos('truncate', SSqlText) < 0))
  if (not (STag in [1, 2, 3])) then
    begin
      Application.Messagebox('调用函数的方法不当!', '警告', MB_ICONINFORMATION);
      Result := -1;
      Exit
    end;

  Application.CreateForm(TQuery, Qu_Exec);//定义QUERY构件
  with Qu_Exec do
    begin
      Close;//关闭QUERY构件,以便于处理QUERY构件的属性及方法。
      DatabaseName := session.Databases[0].DatabaseName;//设置QUERY构件的数据源
      Sql.Clear;//清除QUERY构件TEXT属性中的内容
      Sql.Add('select sysdate as tmpsysdate from dual');//定义QUERY构件TEXT属性中的内容
      try
        Open;
        SDateTime := FieldByName('tmpsysdate').AsString;
      except
        Result := -1;
        Exit
      end;

      session.Databases[0].StartTransaction;//启动事务
      Close;
      DatabaseName := session.Databases[0].DatabaseName;
      Sql.Clear;
      Sql.Add(SSqlText);
      try
        //增加、删除、修改
        if STag in ([1,2,3]) then
          begin
            ExecSql;//执行Sql语句,进行增、删、改。
            session.Databases[0].Commit; //在系统执行成功时,提交事务
          end;
        Result := 0;//执行成功,返回成功值0.
      except on E: Exception do
        begin
          session.Databases[0].Rollback;//在系统执行过程中发生错误时,回滚事务
          Result := -1;
          //以下进行错误日志的插入
          session.Databases[0].StartTransaction;//启动事务。
          Close;
          Sql.Clear;
          Sql.Add('insert into tl_error_log values');
          Sql.Add('(seq_erro_id.nextval, :errocode, :errosqltext, :erroinfo, :erromodu, :errorwkno, :errotime)');
          ParamByName('errocode').AsString := copy(e.message,19,pos(':',e.message)-19);
          ParamByName('errosqltext').AsString := SSqlText;
          ParamByName('erroinf

⌨️ 快捷键说明

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