ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 像Windows 一樣地查詢 (转)

像Windows 一樣地查詢 (转)

原创 Linux操作系统 作者:amyz 时间:2007-08-15 14:52:31 0 删除 编辑
像Windows 一樣地查詢 (转)[@more@]

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查詢一樣的模糊查詢。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10752019/viewspace-958282/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    3982
  • 访问量
    7895765