我现在的三层程序中,客户段是一个查询界面,界面的上部是几个checkbox和几个edit空间,他们一一对应,他们也是查询的检索点,比如说客户选中了第一个checkbox1(按名字查询),那edit1中的内容就是检索条件,那这样的话是不是可以这样写程序:先定义sql语句,sql:='select enterprisename(字段一),enterpriseid(字段二) from basicinfo(表)‘,然后写:
if checkbox1.checked=true then
edit1.enabled:=true;
str:=str+'and enterprsiename=‘+''''+edit1.text+''''';
~~~~~~~~
~~~~
datamodule1.clientdataset.close;
datamodule1.clientdataset.commandtext;=sql;
datamodule1.clientdataset.open;
datamodule1.clientdataset.active:=true;
with dbgrid do
begin~~~~~~~~
运行后,点击checkbox1(按名称查询也就是按enterprisename查询),在其后的edit中输入数据,点击查询按纽,出现(enterprisename is of an unknow type )错误!请哪位高手赐教!!!急!
if checkbox1.checked=true then
edit1.enabled:=true;
str:=str+'and enterprsiename=‘+''''+edit1.text+''''';
~~~~~~~~
~~~~
datamodule1.clientdataset.close;
datamodule1.clientdataset.commandtext;=sql;
datamodule1.clientdataset.open;
datamodule1.clientdataset.active:=true;
with dbgrid do
begin~~~~~~~~
运行后,点击checkbox1(按名称查询也就是按enterprisename查询),在其后的edit中输入数据,点击查询按纽,出现(enterprisename is of an unknow type )错误!请哪位高手赐教!!!急!
procedure TSEnterInfoFrm.QBCEnterpriseNameClick(Sender: TObject);
begin
if QBCEnterprisename.Checked =true then
QBEnterprisename.Enabled:=true
else
QBEnterprisename.Enabled :=false;
QBEnterprisename.Text :='';end;procedure TSEnterInfoFrm.QBCEnterpriseKindClick(Sender: TObject);
begin
if QBCEnterprisekind.Checked =true then
QBEnterprisekind.Enabled :=true
else
QBEnterprisekind.Enabled :=false;
QBEnterprisekind.Text :='';
end;procedure TSEnterInfoFrm.QBCEnterpriseClassClick(Sender: TObject);
begin
if QBCEnterpriseclass.Checked =true then
QBEnterpriseclass.Enabled :=true
else
QBEnterpriseclass.Enabled :=true;
QBenterpriseclass.Text :='';
end;procedure TSEnterInfoFrm.QBCEntrolMoneyClick(Sender: TObject);
begin
if QBCEntrolmoney.Checked=true then
begin
QBEnrolmoneybegin.Enabled:=true;
QBEnrolmoneyend.Enabled :=true;
end
else
begin
QBEnrolmoneybegin.Text :='';
QBEnrolmoneyend.Text :='';
QBEnrolmoneybegin.Enabled :=false;
QBEnrolmoneyend.Enabled :=false;
end;end;procedure TSEnterInfoFrm.QBCHoldDateClick(Sender: TObject);
begin
if QBCHolddate.Checked =true then
begin
QBHolddatebegin.Enabled :=true;
QBHolddateend.Enabled :=true;
end
else
begin
QBHolddatebegin.Text :='';
QBHolddateend.Text :='';
QBHolddatebegin.Enabled :=false;
QBHolddateend.Enabled :=false;
end;end;procedure TSEnterInfoFrm.QBCGovernorClick(Sender: TObject);
begin
if QBCGovernor.Checked =true then
QBGovernor.Enabled :=true
else
QBGovernor.Enabled :=false;
QBGovernor.Text :='';
end;procedure TSEnterInfoFrm.TotalEnterpriseInfoClick(Sender: TObject);
var str:string;
str1:string;
str2:string;
str3:string;
str4:string;
str5:string;
str6:string;
params:array[1..8]of string;
begin
str:='select a.enterpriseid, a.enterprisename, a.enroladdress,a.holddate,b.entrolmoney,a.economy,b.enterpriseclass,c.linkman,c.ltelephone,d.class,d.name from "basicinfo" a,"correlation" b, "contact" c,"personinfo" d';
str:=str+' where a.enterpriseid=b.enterpriseid and a.enterpriseid=c.enterpriseid and a.enterpriseid=d.enterpriseid ';
if QBCEnterprisename.Checked =true then
begin
str1:='and enterprisename='+''''+enterprisename+'''';
str:=str+str1;
end
else
begin
str1:='';
end;
if QBCEnterprisekind.Checked =true then
begin
str2:='and enterprisekind='+''''+QBenterprisekind+'''';
str:=str+str2;
end
else
begin
str2:='';
end;
if QBCEnterpriseclass.Checked =true then
begin
str3:='and enterpriseclass='+''''+QBenterpriseclass.text+'''';
str:=str+str3;
end
else
begin
str3:='';
end;
if QBCEntrolmoney.Checked =true then
begin
str4:=' and Entrolmoney between'+ '''+QBEntrolmoneybegin.text+''''+' and'+'''' +QBentrolmoneyend.text+'''';
str:=str+str4;
end
else
begin
str4:='';
end;
if QBCHolddate.Checked =true then
begin
str5:=' and holddate between'+''''+QBHolddatebegin.text+''''+'and'+ ''''+QBHolddateend.text+'''';
str:=str+str5;
end
else
begin
str5:='';
end;
if QBCGovernor.Checked =true then
begin
str6:='and governor='+''''+QBgovernor.text+'''';
str:=str+str6;
end
else
begin
str6:='';
end;datamodule1.SBasicDataSet.Close ;
datamodule1.SBasicDataSet.CommandText :=str;
datamodule1.Sbasicdataset.open;
datamodule1.SBasicDataSet.Active:=true;
with EInfogrid do
begin
columns[0].fieldname:='enterpriseid';
columns[1].fieldname:='enterprisename';
columns[2].fieldname:='enroladdress';
columns[3].fieldname:='holddate';
columns[4].fieldname:='enrolmoney';
columns[5].fieldname:='economy';
columns[6].fieldname:='enterprisekind';
columns[7].fieldname:='linkman';
columns[8].fieldname:='ltelephone';
columns[9].FieldName:='name';
end;end;
end.