举一个简单的例子:
资料表中有一个编号字段(对应于相应的地区),显示给用户看的是中文的地区名.这时要做一个综合性的查询(也就是多个字段),其中包含地区,语句可能是这样的:
where a>:a and b=:b and RegionNo=:RegionNo
但是显示给用户的可能值应是中文的Region(如"北京")这时条件就应当是Region="北京"而不是其编号RegionNo="01".
请注意:可能有多个这样的字段.
请大家讨论.
就是普通的关联查询啊。
如:
table1:
OperNum Opername opersex adress phone zjlb(证件类别)
table2:
zjlbbm(证件类别编码) zjlbms(证件类别描述)
一个关联查询的例子:
select OperNum,opername,opersex ,zjlbms from table1,table2 where table1.zjlb=table2.zjlbbm and OperNum=1234
关联查询的意思。
table1
opernum opername opersex adress zjlb(证件类别)
table2
zjlbbm zjlbms(证件类别描述)
sql语句:
select opernum,opername,opersex,zjlbms from table1,table2
where table1.zjlb=table2.zjlbbm and opernum=1234
这样做还不容易!就是再做一个表,这个表是专门存储编号和编号对于的值,然后在做多表查询啊!做什么啊你!
这好象需要根据查询的用户界面的具体情况用代码生成SQL语句,前提是数据库表的数量和格式确定,其实也不麻烦;
但如果数据库结构不确定的话,俺就MM了。
同意lluunn007(玉笛书生)
“看样子大家还是不清楚,举个例子说一下:
比如客户表,有地区编号,性别编号,行业编号...
第一次查询:A地区,男的客户
第二次查询:A地区,男,A行业的客户
...
你的sql语句是不是很难确定啊,可能是双表查询,也可能是三表,四表
最好,换一张表也可以用”
动态调整Sql就可以实现了
从我已有的技术角度来讲,这不可能,或者为了减低维护费用而使得开发代价太大,不值得;
换个角度去做吧,技术最好的最通用的一劳永逸的不一定是最好用的,也不一定是一定可以实现的。
good luck!
不就是将查询结果中的代码转换为实际意义吗?
我经常遇到, 我也想知道该怎么做!
字段名,参数都用变量,其个数同lookup中的行数决定.
如:
char temp[500];
sprintf(temp,"select %s,%s,%s where %s=%s and %s=%s",
field1,field2,field3,field1,value1,field3,value2);
应该可以的,我已实现过.
好,帮你up
...
我有点明白了。我们以前做的asp生成器,是将表中各字段的结构,类型,映射等信息另存一个表,甚至是SQL语句。然后动态生成查询语句。
我是这么做的:
把每一张表的表名连同其内的字段名、类型、长度、中文名、可比较的关系符、引号、取值范围、默认值、最小值、最大值、真正取值1、真正取值2等信息存入一张结构表中,然后,把这张表以一定的方式(如:DBGrid)显示,然后,从这张表形成一个SQL语句即可.