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

📄 public_unit.pas

📁 DELPHI计算机科学系教务管理系统,带论文设计,不错的参考
💻 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 + -