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

📄 unit1.pas

📁 数据库封装原代码 1. 该代码可以免费使用, 该代码的名字暂时定为"哲别" 2. 如果你需要使用该代码, 请注明该代码的原来作者: Jacky Zhou 3. 如果你发现该代码有bug,可以自己修改
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  gdUser.Cells[3, 1] := IntToStr(etyUser.GetAttributeValue(FD_AGE));

  //add it to list
  m_listUser.AddEntity(etyUser);
end;

procedure TForm1.cmdQueryLargeAgeClick(Sender: TObject);
var
  etyCondition : TEtyCondition;
  listCondition : TEtyList;
  listUser : TEtyList;
  etyUser : IEntity;
  i : integer;
begin
  //get age condition
  if txtAge.Text = '' then
  begin
    Application.MessageBox('Please input age', 'Error', MB_OK);
    Exit;
  end;

  etyCondition := TEtyCondition.Create;
  //这里FD_AGE的值是EtyUser.xml文件的<EntityFieldName>
  etyCondition.SetAttributeValue(FD_ENTITY_FIELD_NAME, FD_AGE);
  etyCondition.SetAttributeValue(FD_OPERATION, '>=');
  etyCondition.SetAttributeValue(FD_VALUE, txtAge.Text);

  listCondition := TEtyList.Create(TEtyCondition.Create);
  listCondition.AddEntity(etyCondition);

  //query
  listUser := TEtyList.Create(TEtyUser.Create);
  m_CtrSample.LoadEntityList(listUser, listCondition);

  //clear first
  cmdClearClick(Sender);

  //display user infromation
  gdUser.RowCount := gdUser.FixedRows + listUser.GetEntityCount;
  for i := 0 to listUser.GetEntityCount - 1 do
  begin
    //get user
    etyUser := listUser.GetEntity(i);

    gdUser.Cells[1, 1 + i] := etyUser.GetAttributeValue(FD_USER_NAME);
    gdUser.Cells[2, 1 + i] := etyUser.GetAttributeValue(FD_ADDRESS);
    gdUser.Cells[3, 1 + i] := IntToStr(etyUser.GetAttributeValue(FD_AGE));

    //add it to list
    m_listUser.AddEntity(etyUser);
  end;
end;

procedure TForm1.cmdQueryAllClick(Sender: TObject);
var
  etyRule : TEtyRule;
  listRule : TEtyList;
begin
  //set rule
  etyRule := TEtyRule.Create;
  etyRule.SetAttributeValue(FD_OPERATION, RULE_ORDERBY);
  //这里FD_USER_NAME的值是EtyUser.xml文件的<EntityFieldName>
  etyRule.SetAttributeValue(FD_ENTITY_FIELD_NAME, FD_USER_NAME);

  listRule := TEtyList.Create(TEtyRule.Create);
  listRule.AddEntity(etyRule);

  //load all users from database
  m_CtrSample.LoadEntityList(m_listUser, nil, listRule);

  RefreshGrid;
end;

//-----------------------------------------------------------------------------
//                              Delete Entity
//-----------------------------------------------------------------------------
procedure TForm1.cmdDelete1Click(Sender: TObject);
var
  etyUser : IEntity;
begin
  if txtUserName.Text = '' then
  begin
    Application.MessageBox('Please select one row', 'Error', MB_OK);
    Exit;
  end;

  // delete record
  etyUser := TEtyUser.Create;

  //这里没有条件参数, 所以必须给etyUser的PK赋值
  etyUser.SetAttributeValue(FD_USER_NAME, txtUserName.Text);
  if not m_CtrSample.DeleteEntity(@etyUser) then
  begin
    Application.MessageBox('TDBGW.DeleteEntity', 'Error', MB_OK);
    Exit;
  end;

  //refresh
  cmdQueryAllClick(Sender);
end;

procedure TForm1.cmdDelete2Click(Sender: TObject);
var
  etyCondition : TEtyCondition;
  listCondition : TEtyList;
  etyUser : IEntity;
begin
  //get user name condition
  if txtUserName.Text = '' then
  begin
    Application.MessageBox('please select one row', 'Error');
    exit;
  end;

  etyCondition := TEtyCondition.Create;
  //这里FD_USER_NAME的值是EtyUser.xml文件的<EntityFieldName>
  etyCondition.SetAttributeValue(FD_ENTITY_FIELD_NAME, FD_USER_NAME);
  etyCondition.SetAttributeValue(FD_OPERATION, '=');
  etyCondition.SetAttributeValue(FD_VALUE, txtUserName.Text);

  listCondition := TEtyList.Create(TEtyCondition.Create);
  listCondition.AddEntity(etyCondition);

  //delete
  etyUser := TEtyUser.Create;
  m_CtrSample.DeleteEntity(@etyUser, listCondition);

  //refresh
  cmdQueryAllClick(Sender);
end;

procedure TForm1.cmdDeleteAgeLarge20Click(Sender: TObject);
var
  etyCondition : TEtyCondition;
  listCondition : TEtyList;
  etyUser : IEntity;
begin
  if txtAge.Text = '' then
  begin
    Application.MessageBox('Please input age', 'Error', MB_OK);
    Exit;
  end;

  etyCondition := TEtyCondition.Create;
  //这里FD_AGE的值是EtyUser.xml文件的<EntityFieldName>
  etyCondition.SetAttributeValue(FD_ENTITY_FIELD_NAME, FD_AGE);
  etyCondition.SetAttributeValue(FD_OPERATION, '>=');
  etyCondition.SetAttributeValue(FD_VALUE, StrToInt(txtAge.Text));

  listCondition := TEtyList.Create(TEtyCondition.Create);
  listCondition.AddEntity(etyCondition);

  //delete
  etyUser := TEtyUser.Create;
  m_CtrSample.DeleteEntity(@etyUser, listCondition);

  //refresh
  cmdQueryAllClick(Sender);
end;

procedure TForm1.cmdDeleteAllClick(Sender: TObject);
var
  etyUser : IEntity;
begin
  //delete
  etyUser := TEtyUser.Create;
  m_CtrSample.DeleteEntity(@etyUser);

  //refresh
  cmdQueryAllClick(Sender);
end;

//-----------------------------------------------------------------------------
//                              Update Entity
//-----------------------------------------------------------------------------
procedure TForm1.cmdUpdateAddress1Click(Sender: TObject);
var
  etyUser : IEntity;
begin
  //get user name condition
  if txtUserName.Text = '' then
  begin
    Application.MessageBox('please select one row', 'Error');
    exit;
  end;

  etyUser := TEtyUser.Create;

  //这里没有条件参数, 所以必须给etyUser的PK赋值
  etyUser.SetAttributeValue(FD_USER_NAME, txtUserName.Text);

  //update address
  etyUser.SetAttributeValue(FD_ADDRESS, txtAddress.Text);
  m_CtrSample.UpdateEntity(@etyUser);

  //refresh
  cmdQueryAllClick(Sender);
end;

procedure TForm1.cmdUpdateAddress2Click(Sender: TObject);
var
  etyCondition : TEtyCondition;
  listCondition : TEtyList;
  etyUser : IEntity;
begin
  //get user name condition
  if txtUserName.Text = '' then
  begin
    Application.MessageBox('please select one row', 'Error');
    exit;
  end;

  etyCondition := TEtyCondition.Create;
  //这里FD_USER_NAME的值是EtyUser.xml文件的<EntityFieldName>
  etyCondition.SetAttributeValue(FD_ENTITY_FIELD_NAME, FD_USER_NAME);
  etyCondition.SetAttributeValue(FD_OPERATION, '=');
  etyCondition.SetAttributeValue(FD_VALUE, txtUserName.Text);

  listCondition := TEtyList.Create(TEtyCondition.Create);
  listCondition.AddEntity(etyCondition);

  //update address
  etyUser := TEtyUser.Create;
  etyUser.SetAttributeValue(FD_ADDRESS, txtAddress.Text);
  m_CtrSample.UpdateEntity(@etyUser, listCondition);

  //refresh
  cmdQueryAllClick(Sender);
end;

procedure TForm1.cmdUpdateAgeClick(Sender: TObject);
var
  etyCondition : TEtyCondition;
  listCondition : TEtyList;
  etyUser : IEntity;
begin
  //get user name condition
  if txtUserName.Text = '' then
  begin
    Application.MessageBox('please select one row', 'Error');
    exit;
  end;

  etyCondition := TEtyCondition.Create;
  //这里FD_USER_NAME的值是EtyUser.xml文件的<EntityFieldName>
  etyCondition.SetAttributeValue(FD_ENTITY_FIELD_NAME, FD_USER_NAME);
  etyCondition.SetAttributeValue(FD_OPERATION, '=');
  etyCondition.SetAttributeValue(FD_VALUE, txtUserName.Text);

  listCondition := TEtyList.Create(TEtyCondition.Create);
  listCondition.AddEntity(etyCondition);

  //update age
  etyUser := TEtyUser.Create;
  etyUser.SetAttributeValue(FD_AGE, txtAge.Text);
  m_CtrSample.UpdateEntity(@etyUser, listCondition);

  //refresh
  cmdQueryAllClick(Sender);
end;

procedure TForm1.cmdUpdateAllAgeClick(Sender: TObject);
var
  etyUser : IEntity;
begin
  etyUser := TEtyUser.Create;

  //update age
  etyUser.SetAttributeValue(FD_AGE, txtAge.Text);
  m_CtrSample.UpdateEntity(@etyUser);

  //refresh
  cmdQueryAllClick(Sender);
end;

//-----------------------------------------------------------------------------
//                              Store Procedure
//-----------------------------------------------------------------------------
procedure TForm1.cmdStoreProcedureClick(Sender: TObject);
var
  etySumAge : IEntity;
  etyCondition : TEtyCondition;
  listCondition : TEtyList;
  nFromAge, nToAge : integer;
begin
  etySumAge := TEtySumAge.Create;

  //get from age and to age condition
  listCondition := TEtyList.Create(TEtyCondition.Create);

  //set from condition
  etyCondition := TEtyCondition.Create;
  nFromAge := 0;
  if txtFromAge.Text <> '' then
    nFromAge := StrToInt(txtFromAge.Text);
  etyCondition.SetAttributeValue(FD_ENTITY_FIELD_NAME, FD_SUM_AGE);
  etyCondition.SetAttributeValue(FD_OPERATION, '>=');
  etyCondition.SetAttributeValue(FD_VALUE, nFromAge);

  listCondition.AddEntity(etyCondition);

  //set to condition
  etyCondition := TEtyCondition.Create;
  nToAge := 0;
  if txtToAge.Text <> '' then
    nToAge := StrToInt(txtToAge.Text);
  etyCondition.SetAttributeValue(FD_ENTITY_FIELD_NAME, FD_SUM_AGE);
  etyCondition.SetAttributeValue(FD_OPERATION, '<=');
  etyCondition.SetAttributeValue(FD_VALUE, nToAge);

  listCondition.AddEntity(etyCondition);

  //run stored procedure to get sum age
  m_CtrSample.LoadEntity(@etySumAge, listCondition);

  //display sum age
  txtSumAge.Text := IntToStr(etySumAge.GetAttributeValue(FD_SUM_AGE));
end;

end.

⌨️ 快捷键说明

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