📄 unit_public_1.pas
字号:
//初始设计者 : 曾忠诚
//模块名称 : 数据库连接名称
//模块功能 : 根据数局的用户名称得到连接当前数据库用户的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 + -