Delphi

本类阅读TOP10

·分布式网络考试系统原型分析及实现
·游戏外挂设计技术探讨①
·使用HOOK随心监视Windows
·Delphi 水晶报表打包解决
·试题库开发中非文本数据的处理
·如何将几个DBGRID里的内容导入同一个EXCEL表中....的问题
·如何使用Delphi设计强大的服务器程序
·工人线程中关闭窗体的实现
·用DLL方式封装MDI子窗体。
·支持XP下托盘栏气球提示的托盘单元

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
像Windows 一樣地查詢

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

Win2K + Delphi5 + SQL Server2K 編譯通過,執行正常。

const
  sMAIN_SQL = 'SELECT ...FROM ... WHERE (...)'  //用到別名,故下有"A.fItemNo"等
  sEMPTY = '';
  sITEM_TYPE = 'fItemType';

procedure SelectStock;
var
  stItemNo, stItemName, SQL: string;
begin
  adsStock.Active := False;
  SQL := sMAIN_SQL;
  adsStock.CommandText := SQL;

  if Trim(edtItemNo.Text) <> sEMPTY then
  begin
    stItemNo := StringReplace(Trim(edtItemNo.Text), '*', '%', [rfReplaceAll]);
    SQL := SQL + ' AND A.fItemNo like ''' + stItemNo + '''';
    adsStock.CommandText := SQL;
  end;

  if Trim(edtItemName.Text) <> sEMPTY then
  begin
    stItemName := StringReplace(Trim(edtItemName.Text), '*', '%', [rfReplaceAll]);
    SQL := SQL + ' AND A.fItemName like ''' + stItemName + '''';
    adsStock.CommandText := SQL;
  end;

  if cbbItemType.Text <> sEMPTY then
  begin
    SQL := SQL + ' AND B.fItemType = :fItemType ';
    adsStock.CommandText := SQL;
    adsStock.Parameters.ParamByName(sITEM_TYPE).Value := cbbItemType.Text;
  end;
  ......// 其他條件
  adsStock.Active := True;
end;
這樣,如果用戶不輸入任何限制條件,則按sMAIN_SQL查詢出結果。一旦用戶輸入類似於"1-*05*"等形式的條件,將執行類似於Windows查詢一樣的模糊查詢。




相关文章

相关软件