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

📄 ubclass.pas

📁 数据库试验题目
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  adqReward: TADOQuery;
begin
  adqReward := TADOQuery.Create(nil);
  try
    lvwReward.Clear;
    with adqReward do
    begin
      connection := _Conn;
      sql.Clear;
      sql.Add('select a.ID,a.Student,b.Name,a.LEVELS,c.DESCRIPTION as CD,'
        + 'a.REC_TIME,a.DESCRIPTION as AD from REWARD a,STUDENT b,REWARD_LEVELS c'
        + ' where a.STUDENT=b.ID and a.LEVELS=c.CODE'
        + ' and a.STUDENT=''' + _ID + '''');
      open;
      if not isempty then
      begin
        first;
        while not eof do
        begin
          with lvwReward.Items.Add do
          begin
            caption := GetStrDataSet(adqReward, 'ID', '');
            subitems.Add(GetStrDataSet(adqReward, 'REC_TIME', ''));
            subitems.Add(GetStrDataSet(adqReward, 'LEVELS', '') + '-'
              + GetStrDataSet(adqReward, 'CD', ''));
            subitems.Add(GetStrDataSet(adqReward, 'AD', ''));
          end;
          next;
        end;
      end;
    end;
  finally
    adqReward.Free;
  end;
end;

function TStudent.GetIDValue(FullValue: string): string;
var
  i: integer;
begin
  i := pos('-', FullValue);
  result := copy(FullValue, 1, i - 1);
end;

function TStudent.GetNewCCID: string;
var
  adqID: TADOQuery;
begin
  adqID := TADOQuery.Create(nil);
  try
    with adqID do
    begin
      connection := _Conn;
      sql.Clear;
      sql.Add('Select * from COUNT_ER'
        + ' where CODE=''1''');
      open;
      first;
      edit;
      fieldbyname('COUNTER_VAL').asinteger := fieldbyname('COUNTER_VAL').asinteger + 1;
      post;
      result := GetStrDataSet(adqID, 'COUNTER_VAL', '');
    end;
  finally
    adqID.Free;
  end;
end;

function TStudent.GetNewCRID: string;
var
  aqdID: TADOQuery;
begin
  aqdID := TADOQuery.Create(nil);
  try
    with aqdID do
    begin
      connection := _Conn;
      sql.Clear;
      sql.Add('Select * from COUNT_ER'
        + ' where CODE=''3''');
      open;
      first;
      edit;
      fieldbyname('COUNTER_VAL').AsInteger := fieldbyname('COUNTER_VAL').AsInteger + 1;
      post;
      result := GetStrDataSet(aqdID, 'COUNTER_VAL', '');
    end;
  finally
    aqdID.Free;
  end;
end;

function TStudent.GetNewCSID: string;
var
  adqID: TADOQuery;
begin
  adqID := TADOQuery.Create(nil);
  try
    with adqID do
    begin
      connection := _Conn;
      sql.Clear;
      sql.Add('Select * from COUNT_ER'
        + ' where CODE=''2''');
      open;
      first;
      edit;
      fieldbyname('COUNTER_VAL').asinteger := fieldbyname('COUNTER_VAL').asinteger + 1;
      post;
      result := GetStrDataSet(adqID, 'COUNTER_VAL', '');
    end;
  finally
    adqID.Free;
  end;
end;

function TStudent.GetNewSID: string;
var
  adqID: TADOQuery;
begin
  adqID := TADOQuery.Create(nil);
  try
    with adqID do
    begin
      connection := _Conn;
      sql.Clear;
      sql.Add('Select * from COUNT_ER'
        + ' where CODE=''0''');
      open;
      first;
      edit;
      fieldbyname('COUNTER_VAL').asinteger := fieldbyname('COUNTER_VAL').asinteger + 1;
      post;
      result := GetStrDataSet(adqID, 'COUNTER_VAL', '');
    end;
  finally
    adqID.Free;
  end;
end;

procedure TStudent.GetPunishList(cmbPunish: TComboBox);
var
  adqPunish: TADOQuery;
begin
  adqPunish := TADOQuery.Create(nil);
  try
    cmbPunish.Clear;
    with adqPunish do
    begin
      connection := _Conn;
      sql.Clear;
      sql.Add('select * from PUNISH_LEVELS');
      open;
      if not isempty then
      begin
        first;
        while not eof do
        begin
          cmbPunish.AddItem(GetStrDataSet(adqPunish, 'CODE', '') + '-'
            + GetStrDataSet(adqPunish, 'DESCRIPTION', ''), nil);
          next;
        end;
      end;
    end;
  finally
    adqPunish.Free;
  end;
end;

procedure TStudent.GetRewardList(cmbReward: TComboBox);
var
  adqReward: TADOQuery;
begin
  adqReward := TADOQuery.Create(nil);
  try
    cmbReward.Clear;
    with adqReward do
    begin
      connection := _Conn;
      sql.Clear;
      sql.Add('select * from REWARD_LEVELS');
      open;
      if not isempty then
      begin
        first;
        while not eof do
        begin
          cmbReward.AddItem(GetStrDataSet(adqReward, 'CODE', '') + '-'
            + GetStrDataSet(adqReward, 'DESCRIPTION', ''), nil);
          next;
        end;
      end;
    end;
  finally
    adqReward.Free;
  end;
end;

procedure TStudent.ModiChange(CCID, CID: string; CTime: TDateTime;
  CD: string);
var
  adqChange: TADOQuery;
begin
  adqChange := TADOQuery.Create(nil);
  try
    with adqChange do
    begin
      connection := _Conn;
      sql.Clear;
      sql.Add('select * from change'
        + ' where id=''' + CCID + '''');
      open;
      if not isempty then
      begin
        first;
        edit;
        fieldbyname('CHANGE').AsString := GetIDValue(CID);
        fieldbyname('REC_TIME').AsDateTime := int(CTime);
        fieldbyname('DESCRIPTION').AsString := CD;
        post;
      end;
    end;
  finally
    adqChange.Free;
  end;
end;

procedure TStudent.ModiPunish(CCID, CID: string; CTime: TDateTime; CD,
  SEnable: string);
var
  adqPunish: TADOQuery;
begin
  adqPunish := TADOQuery.Create(nil);
  try
    with adqPunish do
    begin
      connection := _Conn;
      sql.Clear;
      sql.Add('select * from punishment'
        + ' where id=''' + CCID + '''');
      open;
      if not isempty then
      begin
        first;
        edit;
        fieldbyname('LEVELS').AsString := GetIDValue(CID);
        fieldbyname('REC_TIME').AsDateTime := int(CTime);
        fieldbyname('DESCRIPTION').AsString := CD;
        fieldbyname('ENABLE').AsString := SEnable;
        post;
      end;
    end;
  finally
    adqPunish.Free;
  end;
end;

procedure TStudent.ModiReward(CCID, CID: string; CTime: TDateTime;
  CD: string);
var
  adqReward: TADOQuery;
begin
  adqReward := TADOQuery.Create(nil);
  try
    with adqReward do
    begin
      connection := _Conn;
      sql.Clear;
      sql.Add('select * from reward'
        + ' where id=''' + CCID + '''');
      open;
      if not isempty then
      begin
        first;
        edit;
        fieldbyname('LEVELS').AsString := GetIDValue(CID);
        fieldbyname('REC_TIME').AsDateTime := int(CTime);
        fieldbyname('DESCRIPTION').AsString := CD;
        post;
      end;
    end;
  finally
    adqReward.Free;
  end;
end;

function TStudent.MoveNext: Boolean;
begin
  with _adqStudent do
  begin
    if _Update then Update;
    if isempty then result := false
    else
    begin
      Next;
      if eof then
      begin
        setValue(true);
        result := false;
      end
      else SetValue(true);
    end;
  end;
end;

function TStudent.MovePrior: Boolean;
begin
  with _adqStudent do
  begin
    if _Update then Update;
    if isempty then result := false
    else
    begin
      Prior;
      if bof then
      begin
        setValue(true);
        result := false;
      end
      else SetValue(true);
    end;
  end;
end;

procedure TStudent.SetBDate(const Value: TDateTime);
begin
  if int(Value) <> int(_BDate) then
  begin
    _BDate := int(Value);
    _Update := true;
  end;
end;

procedure TStudent.SetClass(Value: string);
begin
  if _Class <> Value then
  begin
    _Class := Value;
    _Update := true;
  end;
end;

procedure TStudent.SetDept(Value: string);
begin
  if _Dept <> Value then
  begin
    _Dept := Value;
    _Update := true;
  end;
end;

procedure TStudent.SetID(Value: string);
begin
  if _ID <> Value then
  begin
    _ID := Value;
    _Update := true;
  end;
end;

procedure TStudent.SetName(Value: string);
begin
  if _Name <> Value then
  begin
    _Name := Value;
    _Update := true;
  end;
end;

procedure TStudent.SetNP(Value: string);
begin
  if _NP <> Value then
  begin
    _NP := Value;
    _Update := true;
  end;
end;

procedure TStudent.SetSex(Value: string);
begin
  if _Sex <> Value then
  begin
    _Sex := Value;
    _Update := true;
  end;
end;

procedure TStudent.SetValue(NotNULL: Boolean);
begin
  with _adqStudent do
  begin
    if NotNULL then
    begin
      _ID := GetStrDataSet(_adqStudent, 'ID', '');
      _Name := GetStrDataSet(_adqStudent, 'NAME', '');
      _Sex := GetStrDataSet(_adqStudent, 'SEX', '');
      _BDate := fieldbyname('BIRTHDAY').asDateTime;
      _NP := GetStrDataSet(_adqStudent, 'NATIVE_PLACE', '');
      _Class := GetStrDataSet(_adqStudent, 'CLASS', '') + '-'
        + GetClassName(GetStrDataSet(_adqStudent, 'CLASS', ''));
      _Dept := GetStrDataSet(_adqStudent, 'DEPARTMENT', '') + '-'
        + GetDeptName(GetStrDataSet(_adqStudent, 'DEPARTMENT', ''))
    end
    else
    begin
      _ID := '';
      _Name := '';
      _Sex := '';
      _BDate := Now;
      _NP := '';
      _Class := '';
      _Dept := '';
    end;
  end;
end;

function TStudent.SetValue(SID: string):boolean;
begin
  with _adqStudent do
  begin
    if locate('ID',SID,[]) then
    begin
      SetValue(true);
      result:=true;
    end
    else result:=false;
  end;
end;

procedure TStudent.Update;
begin
  with _adqStudent do
  begin
    if Locate('ID', _ID, []) then
    begin
      edit;
      fieldbyname('NAME').AsString := _Name;
      fieldbyname('SEX').AsString := _Sex;
      fieldbyname('CLASS').AsString := GetIDValue(_Class);
      fieldbyname('DEPARTMENT').AsString := GetIDValue(_Dept);
      fieldbyname('BIRTHDAY').AsDateTime := int(_BDate);
      fieldbyname('NATIVE_PLACE').AsString := _NP;
      post;
    end;
    _Update := false;
  end;
end;

end.

⌨️ 快捷键说明

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