📄 public_unit.pas
字号:
unit public_unit;
interface
uses
Windows, Messages, SysUtils, Variants, StdCtrls,Classes, Graphics, Controls, Forms,
Dialogs, fcTreeView, Menus, AdoDB, StrUtils, DBGrids;
// 执行不返回结果的SQL语句
procedure ToExecSQL(sqlStr: String; Conn: TADOConnection);
//判断数是否有复选框被选中
function isTvChecked(tv: TfcTreeView): Boolean;
//执行有返回结果的SQL语句
function ToGetDataSQL(sqlStr: String; Conn: TADOConnection): TADOQuery;
procedure clearText(form: Tform); //清楚窗体上的文本筐
procedure enable(form: Tform); //置enable
procedure unenable(form: Tform); //置unenable
// 填充下拉框
procedure GetFieldsToCombox(DtypeId: string; cb: TComboBox; adocon: TAdoConnection);
//function isName(name: string): boolean; //判断名字输入的有效性
//function isFixedTel(number: string): Boolean;//判断固定电话号码的有效性,返回值是布尔类型
function isEmail(addr: string): Boolean;//判断Email的有效性
//根据字段值选中数的结点框
procedure CheckTvByField(ManageQry: TAdoQuery; adoCon: TADOConnection; tvRole: TfcTreeView);
//从下拉框中获取Did号
function GetDIdFromCombox(cb: TComboBox; adoCon: TAdoConnection): string;
procedure MyexecSql(sqlstr:string;conn:Tadoconnection); //建立一个查询进行增、删、改操作
implementation
uses DataModul;
procedure ToExecSQL(sqlStr: String; Conn: TADOConnection);
var
tempCmd: TADOCommand;
begin
tempCmd := TADOCommand.Create(nil);
with tempCmd do
begin
Connection := Conn;
CommandText := SqlStr;
Execute;
end;
tempCmd.Free;
end;
function isTvChecked(tv: TfcTreeView): boolean;
var
i: integer;
begin
for i := 0 to tv.Items.Count - 1 do
begin
if tv.Items[i].Checked = True then
begin
Result := True;
exit;
end;
end;
result := False;
end;
function ToGetDataSQL(sqlStr: String; Conn: TADOConnection): TADOQuery;
var
adoQry: TADOQuery;
begin
adoQry := TADOQuery.Create(nil);
with adoQry do
begin
Connection := Conn;
SQL.Text := sqlStr;
Open;
end;
result := adoQry;
// adoQry.Free;
end;
procedure clearText(form: Tform);
var
i: integer;
begin
for i := 0 to form.ComponentCount - 1 do
begin
if(form.Components[i] is TEdit) then
TEdit(form.Components[i]).Text := '';
end;
end;
procedure enable(form: Tform);
var
i: integer;
begin
for i := 0 to form.ComponentCount - 1 do
begin
if(form.Components[i] is TEdit) then
TEdit(form.Components[i]).Enabled:=false;
end;
end;
procedure unenable(form: Tform);
var
i: integer;
begin
for i := 0 to form.ComponentCount - 1 do
begin
if(form.Components[i] is TEdit) then
TEdit(form.Components[i]).Enabled:=true;
end;
end;
procedure GetFieldsToCombox(DtypeId: string; cb: TComboBox; adocon: TAdoConnection);
var
adoQry: TAdoQuery;
sqlStr: string;
begin
adoQry:=TADOQuery.Create(nil);
adoQry.Connection := adoCon;
sqlStr:='SELECT DName From TDataParam WHERE DtypeId=' + QuotedStr(DtypeId);
cb.Items.Add('请选择');
with adoqry do
begin
sql.Text:=sqlStr;
Open;
while not eof do
begin
cb.Items.Add(fieldByname('Dname').AsString);
next;
end;
end;
adoqry.Close;
cb.ItemIndex:=0;
cb.Style := csDropDownList;
end;
{
function isName(name: string): boolean;
var
i, len: integer;
begin
len:=Length(name);
for i := 1 to len do
begin
if not(name[i] in ['0'..'9', 'a'..'z', 'A'..'Z']) then
begin
Result := false;
exit;
end;
end;
Result := true;
end; }
{
function isFixedTel(number: string): Boolean;
var
len, i, j: integer;
begin
len := Length(number);
if (len < 7) or (len > 13) then //判断长度
begin
result := false;
exit;
end;
if (len=7) or (len=8) or (len=12) or (len=13) then //判断当号码为七位或八位时的情况
begin
for i := 1 to len do
if not(number[i] in ['0'..'9']) then
begin
result := false;
exit;
end ;
// else
// result := True;
end;
If len = 12 then //判断当号码为11为时的情况
begin
if not((number[4]='-') or (number[5]='-')) then
begin
result := false;
exit;
end
else
begin
for i := 1 to pos('-', number) - 1 do
begin
if not(number[i] in ['0'..'9']) then
begin
result := false;
exit;
end;
end;
for j := pos('-', number) + 1 to len do
begin
if not(number[j] in ['0'..'9']) then
begin
result := false;
exit;
end;
end;
end;
end;
if len = 13 then
begin
if not(number[5] = '-') then
begin
result := false;
exit;
end;
for i := 1 to pos('-', number) - 1 do
if not(number[i] in ['0'..'9']) then
begin
result := false;
exit;
end;
for j := pos('-', number) + 1 to len do
if not(number[j] in ['0'..'9']) then
begin
result := false;
exit;
end;
end;
if (len < 12) and (len > 8) then
begin
result := false;
exit;
end;
result := true;
end;
}
function isEmail(addr: string): Boolean;
var
len, i: integer;
atPos: integer;// @ 的位置
begin
len := Length(addr);
atPos := Pos('@', addr);
for i := 1 to len do//判断输入里面是否是合法字符
begin
if not(addr[i] in ['0'..'9', 'a'..'z', 'A'..'Z','_', '.', '@']) then
begin
Result := False;
exit;
end
end;
for i := 1 to atPos -1 do // 判断@之前是否有'@'、'.'这两个非法字符
begin
if ((addr[atPos + i]='@') or (addr[i]='.')) then
begin
Result := False;
exit;
end;
end;
if((atPos = 1) or (Pos('.', addr) < 5)) then //判断@是否在第一位并且'.'在第五个位置之后
begin
Result := False;
exit;
end;
if((Pos('.', addr) - atPos) < 2) then //判断'@'与'.'之间的字符是否小于2
begin
Result := False;
exit;
end;
Result := True;
end;
procedure CheckTvByField(ManageQry: TAdoQuery; adoCon: TADOConnection; tvRole: TfcTreeView);
var
RoleQry: TADOQuery;
i: integer;
begin
RoleQry := TADOQuery.Create(nil);
with RoleQry do
begin
Connection := dm.ADOConnection1;
Sql.Text := 'SELECT C.rname FROM TUser a '
+ 'LEFT JOIN TUserRole b ON a.Uno=b.Uno '
+ 'LEFT JOIN TRole c ON b.Rno=c.Rno WHERE a.Uno='
+ QuotedStr(ManageQry.fieldbyName('Uno').AsString);
Open;
while not Eof do
begin
for i:=0 to tvRole.Items.Count-1 do
begin
if fieldByname('Rname').AsString = tvRole.Items[i].Text then
tvRole.Items[i].Checked := True;
end;
next;
end;
end;
RoleQry.Free;
end;
function GetDIdFromCombox(cb: TComboBox; adoCon: TAdoConnection): string;
var
DidQry: TAdoQuery;
Did: string;
begin
DidQry := TADOQuery.Create(nil);
with didQry do
begin
Connection := adoCon;
SQl.Text := 'SELECT Did From TDataParam WHERE DName=' + QuotedStr(cb.Text);
Open;
Did := fieldByname('Did').AsString;
end;
Didqry.Free;
Result := Did;
end;
//建立一个查询进行增、删、改操作
procedure MyexecSql(sqlstr:string;conn:Tadoconnection);
var
temqry:Tadoquery;
begin
temqry:=Tadoquery.Create(nil);
with temqry do
begin
connection:=dm.ADOConnection1;
sql.Text:=sqlstr;
execsql;
end;
temqry.Close;
temqry.Free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -