//-----------------------------------------------------------------
//搞了个配置表,将所有配置信息保存在里面,下面是保存和读取的代码,老是感觉有问题,大家有没有好的办法?感觉用LOCATE不舒服,但是又想不出问题在哪里,总是感觉代码还会更短一些才对,这样对数据库的访问太多了。 D7 ACCESS数据库。//-----------保存配置------------
if fmDM_data.tblOption.Locate('OptionName','edtAreaTitle1',[]) then
begin
fmDM_data.tblOption.edit;
FieldByName('OptionName').asstring:='edtAreaTitle1';
FieldByName('OptionValue').asstring:=trim(edtAreaTitle1.Text);
FieldByName('OptionVisible').AsBoolean:=true;
end //if
else
begin
fmDM_data.tblOption.Append;
FieldByName('OptionName').asstring:='edtAreaTitle1';
FieldByName('OptionValue').asstring:=trim(edtAreaTitle1.Text);
FieldByName('OptionVisible').AsBoolean:=true;
end; //else
/////CES设置-业务范围设置保存 AreaTitle2
if fmDM_data.tblOption.Locate('OptionName','edtAreaTitle2',[]) then
begin
fmDM_data.tblOption.edit;
FieldByName('OptionName').asstring:='edtAreaTitle2';
FieldByName('OptionValue').asstring:=trim(edtAreaTitle2.Text);
FieldByName('OptionVisible').AsBoolean:=true;
end //if
else
begin
fmDM_data.tblOption.Append;
FieldByName('OptionName').asstring:='edtAreaTitle2';
FieldByName('OptionValue').asstring:=trim(edtAreaTitle2.Text);
FieldByName('OptionVisible').AsBoolean:=true;
end; //else//-----------读配置----------
with fmDM_data.tblOption do //从配置表中读数据
begin
if fmDM_data.tblOption.Locate('OptionName','edtAreaTitle1',[]) then // edtAreaTitle1
edtAreaTitle1.Text:=fmDM_data.tblOption.FieldByName('OptionValue').AsString;
if fmDM_data.tblOption.Locate('OptionName','edtAreaTitle2',[]) then // edtAreaTitle2
edtAreaTitle2.Text:=fmDM_data.tblOption.FieldByName('OptionValue').AsString;
if fmDM_data.tblOption.Locate('OptionName','edtAreaTitle3',[]) then // edtAreaTitle3
edtAreaTitle3.Text:=fmDM_data.tblOption.FieldByName('OptionValue').AsString;
if fmDM_data.tblOption.Locate('OptionName','edtAreaTitle4',[]) then // edtAreaTitle4
edtAreaTitle4.Text:=fmDM_data.tblOption.FieldByName('OptionValue').AsString;
if fmDM_data.tblOption.Locate('OptionName','edtAreaTitle5',[]) then // edtAreaTitle5
edtAreaTitle5.Text:=fmDM_data.tblOption.FieldByName('OptionValue').AsString;
if fmDM_data.tblOption.Locate('OptionName','dtpQ1Begin',[]) then // dtpQ1Begin
begin
dtpQ1Begin.Date:=FieldByName('OptionValue').AsDateTime;
end //if
else dtpQ1Begin.Date:=now;
if fmDM_data.tblOption.Locate('OptionName','dtpQ1End',[]) then // dtpQ1End
begin
dtpQ1End.Date:=FieldByName('OptionValue').AsDateTime;
end //if
else dtpQ1End.Date:=now;
if fmDM_data.tblOption.Locate('OptionName','dtpQ2Begin',[]) then // dtpQ2Begin
begin
dtpQ2Begin.Date:=FieldByName('OptionValue').AsDateTime;
end //if
else dtpQ2Begin.Date:=now;
//搞了个配置表,将所有配置信息保存在里面,下面是保存和读取的代码,老是感觉有问题,大家有没有好的办法?感觉用LOCATE不舒服,但是又想不出问题在哪里,总是感觉代码还会更短一些才对,这样对数据库的访问太多了。 D7 ACCESS数据库。//-----------保存配置------------
if fmDM_data.tblOption.Locate('OptionName','edtAreaTitle1',[]) then
begin
fmDM_data.tblOption.edit;
FieldByName('OptionName').asstring:='edtAreaTitle1';
FieldByName('OptionValue').asstring:=trim(edtAreaTitle1.Text);
FieldByName('OptionVisible').AsBoolean:=true;
end //if
else
begin
fmDM_data.tblOption.Append;
FieldByName('OptionName').asstring:='edtAreaTitle1';
FieldByName('OptionValue').asstring:=trim(edtAreaTitle1.Text);
FieldByName('OptionVisible').AsBoolean:=true;
end; //else
/////CES设置-业务范围设置保存 AreaTitle2
if fmDM_data.tblOption.Locate('OptionName','edtAreaTitle2',[]) then
begin
fmDM_data.tblOption.edit;
FieldByName('OptionName').asstring:='edtAreaTitle2';
FieldByName('OptionValue').asstring:=trim(edtAreaTitle2.Text);
FieldByName('OptionVisible').AsBoolean:=true;
end //if
else
begin
fmDM_data.tblOption.Append;
FieldByName('OptionName').asstring:='edtAreaTitle2';
FieldByName('OptionValue').asstring:=trim(edtAreaTitle2.Text);
FieldByName('OptionVisible').AsBoolean:=true;
end; //else//-----------读配置----------
with fmDM_data.tblOption do //从配置表中读数据
begin
if fmDM_data.tblOption.Locate('OptionName','edtAreaTitle1',[]) then // edtAreaTitle1
edtAreaTitle1.Text:=fmDM_data.tblOption.FieldByName('OptionValue').AsString;
if fmDM_data.tblOption.Locate('OptionName','edtAreaTitle2',[]) then // edtAreaTitle2
edtAreaTitle2.Text:=fmDM_data.tblOption.FieldByName('OptionValue').AsString;
if fmDM_data.tblOption.Locate('OptionName','edtAreaTitle3',[]) then // edtAreaTitle3
edtAreaTitle3.Text:=fmDM_data.tblOption.FieldByName('OptionValue').AsString;
if fmDM_data.tblOption.Locate('OptionName','edtAreaTitle4',[]) then // edtAreaTitle4
edtAreaTitle4.Text:=fmDM_data.tblOption.FieldByName('OptionValue').AsString;
if fmDM_data.tblOption.Locate('OptionName','edtAreaTitle5',[]) then // edtAreaTitle5
edtAreaTitle5.Text:=fmDM_data.tblOption.FieldByName('OptionValue').AsString;
if fmDM_data.tblOption.Locate('OptionName','dtpQ1Begin',[]) then // dtpQ1Begin
begin
dtpQ1Begin.Date:=FieldByName('OptionValue').AsDateTime;
end //if
else dtpQ1Begin.Date:=now;
if fmDM_data.tblOption.Locate('OptionName','dtpQ1End',[]) then // dtpQ1End
begin
dtpQ1End.Date:=FieldByName('OptionValue').AsDateTime;
end //if
else dtpQ1End.Date:=now;
if fmDM_data.tblOption.Locate('OptionName','dtpQ2Begin',[]) then // dtpQ2Begin
begin
dtpQ2Begin.Date:=FieldByName('OptionValue').AsDateTime;
end //if
else dtpQ2Begin.Date:=now;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货