Foxpro数据库
两个表:Table1(SEQ_CODE,Name……) Table2(SEQ_CODE, Theme)
我想实现下面的查询:
Select * From Table1 Where SEQ_CODE In
(Select Distinct SEQ_CODE From Table2 Where Theme Like 条件1 or Theme Like 条件2 or ……)
其中内层查询的“Or”条件很多,但是ADOQuery的SQL命令长度有限制,有时Theme的条件有上万条,所以这样写的SQL长度超过限制。
于是我想分几次查询,然后将查询结果合并。比如Theme有三个条件(每次的查询条件多少是不固定的,我这里就是举一个例子):
1、查询 Select Distinct SEQ_CODE From Table2 Where Theme Like 条件1;
2、查询 Select Distinct SEQ_CODE From Table2 Where Theme Like 条件2;
3、查询 Select Distinct SEQ_CODE From Table2 Where Theme Like 条件3;
上面的三次查询分别返回三个数据集,
4、将这三个数据集合并。
5、最后作最外层查询:Select * From Table1 Where SEQ_CODE In 刚才被合并的数据集;这个查询的过程我想我已经说得很明白了,但是我不知道这样应该如何实现!!
我现在的控件有ADOConnection1 ADOQuery1 DataSource1 DBGrid1(最后查询的结果显示在这里)。请问是不是还要加什么别的控件才能实现上述的查询过程?具体如何实现?还有就是你们知道SQL的长度限制是多少吗???希望回答问题的朋友说的详细一些,不要只说一些模棱两可的话,问题一解决我马上给分!!分数少了点大家见谅!!谢谢了!!!!!
两个表:Table1(SEQ_CODE,Name……) Table2(SEQ_CODE, Theme)
我想实现下面的查询:
Select * From Table1 Where SEQ_CODE In
(Select Distinct SEQ_CODE From Table2 Where Theme Like 条件1 or Theme Like 条件2 or ……)
其中内层查询的“Or”条件很多,但是ADOQuery的SQL命令长度有限制,有时Theme的条件有上万条,所以这样写的SQL长度超过限制。
于是我想分几次查询,然后将查询结果合并。比如Theme有三个条件(每次的查询条件多少是不固定的,我这里就是举一个例子):
1、查询 Select Distinct SEQ_CODE From Table2 Where Theme Like 条件1;
2、查询 Select Distinct SEQ_CODE From Table2 Where Theme Like 条件2;
3、查询 Select Distinct SEQ_CODE From Table2 Where Theme Like 条件3;
上面的三次查询分别返回三个数据集,
4、将这三个数据集合并。
5、最后作最外层查询:Select * From Table1 Where SEQ_CODE In 刚才被合并的数据集;这个查询的过程我想我已经说得很明白了,但是我不知道这样应该如何实现!!
我现在的控件有ADOConnection1 ADOQuery1 DataSource1 DBGrid1(最后查询的结果显示在这里)。请问是不是还要加什么别的控件才能实现上述的查询过程?具体如何实现?还有就是你们知道SQL的长度限制是多少吗???希望回答问题的朋友说的详细一些,不要只说一些模棱两可的话,问题一解决我马上给分!!分数少了点大家见谅!!谢谢了!!!!!
解决方案 »
- chart实现简单问题:一个人实际完成量占应该完成总量的百分比用chart显示?
- 求购酒店管理系统源代码
- 怎样的算法速度最快,,,不好意思没分给了...
- BDE连接access
- 怎么用SQl语句,写一个关于日期的查询语句(在线)
- 发布YourBase2003及全部源代码, 含大量编程技巧, 想下就要快。
- 有一个管理系统请提供架构思路?
- ●●●请问: 我使用了 TdxDBDateEdit,如何将时间也保存进数据库???
- 各位: 如何让系统认识带小数的字体如:7.5?
- help me about add dir.
- 大家不要这样呀,你们帮帮我,好吗?
- 求:谁用过mshtml单元通过webbrower控件提取网页源码及元素和属性?
2、
Insert into #Temp From (Select Distinct SEQ_CODE From Table2 Where Theme Like 条件1);
Insert into #Temp From (Select Distinct SEQ_CODE From Table2 Where Theme Like 条件2);
Insert into #Temp From (Select Distinct SEQ_CODE From Table2 Where Theme Like 条件3);
3、
Select * From #Temp Where ....大致如此
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Creat Table #Temp(SEQ_CODE Character(30))');
这样创建后的临时表的位置总是在我的程序的那个文件夹下,而没有被保存在我的数据库文件夹下,于是再写SQL命令涉及到临时表的时候就出错了,这个怎么解决?
也就是说我创建的临时表怎样才能被保存到我的数据库文件夹下呢?
你那样写的SQL好像不对啊??!!