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

📄 classu.pas

📁 高校教学管理信息系统
💻 PAS
字号:
unit classu;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ExtCtrls, DBCtrls, StdCtrls, Mask, DBTables, Grids, DBGrids,
  ADODB;

type
  TF_class = class(TForm)
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label8: TLabel;
    Btnadd: TButton;
    Btndlt: TButton;
    ADOQryClass: TADOQuery;
    ADOQryClassclassno: TStringField;
    ADOQryClassdepart: TStringField;
    ADOQryClasstype: TStringField;
    ADOQryClassenteryear: TIntegerField;
    ADOQryClassspecialty: TStringField;
    ADOQryClassname: TStringField;
    Edclassno: TEdit;
    Edspec: TEdit;
    Cmbdepart: TComboBox;
    Cmbdegree: TComboBox;
    Cmbyear: TComboBox;
    Cmbteacher: TComboBox;
    ADOQe: TADOQuery;
    ADOQe2: TADOQuery;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure CmbdepartChange(Sender: TObject);
    procedure BtnaddClick(Sender: TObject);
    procedure BtndltClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  F_class: TF_class;

implementation

uses main;

{$R *.dfm}

procedure TF_class.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     Action := caFree;
end;

procedure TF_class.CmbdepartChange(Sender: TObject);
begin
    cmbteacher.Items.Clear ;
    adoqe.SQL.Clear ;
    adoqe.sql.Add('select teacherno,name from teacher where depart='''+Cmbdepart.Text +''' ');
    adoqe.Open;

    while not adoqe.Eof do
    begin
    cmbteacher.Items.Add(adoqe.fieldbyname('teacherno').AsString +':'+adoqe.fieldbyname('name').AsString );
    adoqe.Next ;
    end;

end;

procedure TF_class.BtnaddClick(Sender: TObject);
var teacherno:string;
    cnt:integer;
begin
    teacherno:=copy(cmbteacher.Text ,0,4);
    adoqe.sql.clear;
    adoqe.sql.add('select count(*) as cnt from class where classno='''+edclassno.Text +''' ');
    adoqe.open;
    cnt:= adoqe.fieldbyname('cnt').asinteger;
    if  cnt>0 then
    begin
    showmessage('对不起,这个班级号已经存在,请您重新录入!');
    exit;
    end
    else
    begin
    mainform.adoconnection1.begintrans;
     try
     adoqe2.sql.clear;
     adoqe2.SQL.Add('insert into class (classno,depart,type,enteryear,teacherno,specialty) values ');
     adoqe2.SQL.Add(' ('''+edclassno.text+''','''+cmbdepart.text+''','''+cmbdegree.text+''','+cmbyear.text+','''+teacherno+''','''+edspec.text+''')');
     adoqe2.ExecSQL ;
     mainform.adoconnection1.committrans;
     adoqryclass.active:=false ;
     adoqryclass.active:=true ;
     except
     mainform.adoconnection1.rollbacktrans;
     end;
    end;


end;

procedure TF_class.BtndltClick(Sender: TObject);
var classno:string;
    cnt:integer;
begin
    classno:=adoqryclass.fieldbyname('classno').AsString  ;
    adoqe.sql.clear;
    adoqe.sql.add('select count(*) as cnt from student where classno='''+classno+''' ');
    adoqe.open;
    cnt:= adoqe.fieldbyname('cnt').asinteger;
    if  cnt>0 then
    if MessageDlg('这个班级下面还存在'+inttostr(cnt)+'条学生信息,是否同时删除该班级所有学生的信息?',
    mtConfirmation, [mbYes, mbNo], 0) = mrno then
    exit;


    mainform.adoconnection1.begintrans;
     try
     adoqe2.sql.clear;
     adoqe2.SQL.Add('delete class where classno='''+classno+''' ');
     adoqe2.ExecSQL ;
     adoqe2.sql.clear;
     adoqe2.SQL.Add('delete student where classno='''+classno+''' ');
     adoqe2.ExecSQL ;
     mainform.adoconnection1.committrans;
     adoqryclass.active:=false ;
     adoqryclass.active:=true ;
     except
     mainform.adoconnection1.rollbacktrans;
     end;

end;

end.

⌨️ 快捷键说明

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