是这样的,我想做一个比较通用查询,其中我想定义一个记录结构来保存用户所设置的查询条件,结构如下:
type
Tsql = record
FieldN: string; //字段名
Condition: string; //条件
FieldV: string; //字段值
Login: string; //逻辑 or and
end;
IndexSql = ^Tsql;
每选择一个条件我就这样
var
myrecord:=indexsql;
begin
new(myrecord);
with myrecord^ do
begin
FieldN := '用户名称';
Condition := '=';
FieldV := '''梦妹''';
Login := 'or';
end;
end;
如果可以无限的增加的话(可惜不行,我正想找到解决方法).我就可以按如下生成sql语句
mysql :=myrecord.FieldN + myrecord.Condition + myrecord.FieldV;问题就是这个myrecord只能存一条当前的记录,请大家出下高见,有什么更好的解决方法.
type
Tsql = record
FieldN: string; //字段名
Condition: string; //条件
FieldV: string; //字段值
Login: string; //逻辑 or and
end;
IndexSql = ^Tsql;
每选择一个条件我就这样
var
myrecord:=indexsql;
begin
new(myrecord);
with myrecord^ do
begin
FieldN := '用户名称';
Condition := '=';
FieldV := '''梦妹''';
Login := 'or';
end;
end;
如果可以无限的增加的话(可惜不行,我正想找到解决方法).我就可以按如下生成sql语句
mysql :=myrecord.FieldN + myrecord.Condition + myrecord.FieldV;问题就是这个myrecord只能存一条当前的记录,请大家出下高见,有什么更好的解决方法.
解决方案 »
- 免费发布数千部大型小说!欢迎指正!
- DELPHI MSCOMM 串口通信 帮帮我!!!!!!!!
- 第三方控件TRzCheckTree第三层数据如果被选中变灰不能被修改如何实现?
- 怎样取一个字符在字符串中的最后出现的位置
- 开发Com+组件并安装后,在组件服务里的对象池选项是灰的,如何启用?
- 高分请教!怎样把一个窗体数据表格dbgrid的数据集的字段记录提取到另一个窗体dbgrid的数据集对应字段中来?
- 简单的问题,看看你的水平!!!
- 有关windows的控件问题,先来先送
- 明明有这条记录却找不到,无论如何gotokey都返回false;
- WIN7下,程序界面不显示,WINDOWS进程中有
- 大虾们:如何调用FORM1.CREATEFORM这个事件的内容,而不要要建立一个FORM???
- 怎么能吧DBGrid的滚动条去掉(不显示)????
array of Tsql用StringList也挺好
用
可建个Tsql类型的数组
array of Tsql
的话,当增加另一条件时用new()时会不允许
然后没添加一个RECORD的时候
在STIRNGGRID中ADD一个RCORD啊
只是 相关的代码 不能被其他模块重复使用,你要是做成一个通用的类
就更好了,到时候别忘了给我们一份。
而通用查询多半是变动WHERE条件表达式.比较灵活方便.分析起来是很快的.
像你这样的情况,用TSTRINGLIST的addobject方法加入,以后用 IndexSql (TStringList.data??//or object??)就可以取得.
MySql_1:='Select * from 表名 Where'
MySql_2:=MySql+字段名+条件+字段值+条件
查询时将MySql_2的最后一个条件删除
MySql:=MySql_1+MySql_2
要不把你方法中的各结点存放到TREEVIEW中,这样可以充分体现多条件查询时括号的作用域