您的位置:首页 > 编程语言

组合查询实现代码

2006-03-19 10:55 393 查看
界面上有三个Edit和一个下拉列表框,在任何一个里面输入数据 则按照此数据来查询,如果没有任何输入则

把数据库中的此表的所有内容都显示出来。

控件类型 name

Edit certID

Edit email

Edit userID

Combo isuse

AnsiString f,t_sc,emails,uid,sqlstr,sqladd,sqlwhere;
sqlstr="select SerialCode,UserEmail,UserID,Flag from CAtoLDAP ";
bool num=false;
sqlwhere= " where ";
if(certID->Text.Length()>0)
{
t_sc=certID->Text;
sqladd=" SerialCode = '"+t_sc+"' ";
num=true;
}
if(email->Text.Length()>0)
{
emails=email->Text;
if(num)
sqladd=sqladd+" and ";
sqladd=sqladd+" UserEmail like '%"+emails+"%'";
if(!num) num=true;
}
if(userID->Text!="")
{
uid=userID->Text;
if(num)
sqladd=sqladd+ " and ";
sqladd=sqladd+" UserID = '"+uid+"'";
if(!num) num=true;
}
if(isuse->Text!="")
{
if(isuse->Text=="是")
{
f="1";
}else {f="0";}
if(num)
sqladd=sqladd+" and ";
sqladd=sqladd+" Flag = '"+f+"'";
if(!num) num=true;
}

if(num)
sqlstr=sqlstr+sqlwhere+sqladd;

ADOQuery1->Active=false;

ADOQuery1->SQL->Clear();

ADOQuery1->SQL->Add(sqlstr);

int i=ADOQuery1->ExecSQL();
ADOQuery1->Active=true;
i=0;
while(!ADOQuery1->Eof)
{
i++;
ADOQuery1->Next();
}

if (i>0) {
ShowMessage("查询到"+IntToStr(i)+ "条记录");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: