📄 unit1.pas
字号:
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 + -