这样的话,你就先过一遍edit等东西(用计数器),如果发现有两个或两个以上的框的值不为空,则设置一个标识为true,然后动态组合sql(根据你的那个标识)。(对datatimepicker的话要额外做判断的)
解决方案 »
- 如何获得当前焦点控件的名称.
- 求高人把这段代码转换成SQL语言!!!!
- [关于二维数组]一个数组保存多个不同长度的数组,如何赋初值
- 欲选中硬盘上的某个文件,把它拖到TListView控件中,如何实现?在线等!!
- 希望大家推进一到两个有良好编程风格的C/S代码来学习一下.
- 一个小问题,请帮忙,谢谢!
- 关于 自定义类型 中使用 string 的问题!
- 哪有Delphi 6 Developer’s Guide(Delphi 6开发人员指南)ebook下载
- 关于在ADO的query怎么判断数据已被其它人修改
- 我如何做这样的排序?
- 请教:怎样在程序中通过网络取得标准北京时间?
- 我想问有delphi5的函数表(一般常用的)的下载吗?
string使用前:='';在edit的onexit中对相应的string:='????'+edit?.text
然后:SQL.add('....'+string1+string2.....)
按楼上的这么做,好象需要比较多的变量啊?
SQLStr := SQLStr + ' and 姓名="'+edit1.text+'" ';
if edit3.text <> '' then
SQLStr := SQLStr + ........................
begin
if edit1.Text<>'' then age_sql_str:=' and age='+edit1.Text;
end;
真的不明白?还是
不如试试用locate方法
其实我已经做出来 了,只是想看看大家 的有什么不同。
okhai(不董) 的办法我也去试试,我用的是类似于antonye(陆小凤)的办法。
不过通常全字段定制查询 可以采用半开放式SQL语句生成方式
将所有条件和 条件值都返回到几个 combobox 或者 stringlist里 条件无非是 and or not
between ... 然后让用户自己直观的生成查询
有时候对付麻烦的用户 还是比较方便的
在使用前,SQLWHERESTR:=‘’
procedure TForm1.Edit1Exit(Sender: TObject);
begin
if edit1.Text<>'' then SQLWHERESTR:=SQLWHERESTR+
' and age='+edit1.Text;
end;
几个条件合成后
if pos('and',sqlwherestr)>0 then delete(sqlwherestr,1,4);
where 后的语句就有了