您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> asp >> 正文

一个复合查询方法

作者:佚名    信息学院来源:整理    点击数:    更新时间:2008-1-24 我要参与讨论

  a sql statement示例,

你甚至可以稍作修改就在你自己的程序中使用该表单。

我曾经就其原理写了一篇文章《交互式建立sql复合查询-vfp示例应用程序详解》贴在网易虚拟社区

VFP版,有兴趣的朋友可以在精华区查到,读完该篇文章,你应该可以自行修改该程序使之能够对一对多数

据库进行查询了。因为该文篇幅很长,又比较枯燥,就不在这儿解说了。

要注意的是:原示例程序用于生成sql语句查询。要改为用于建立sql视图,必须作一些修改:

1、在sql查询中不必限定表别名和数据库名,而建立sql视图却必须这样做。因此需要修改makesql表单的

自定义方法bldsql的代码,将源代码下面的部分:

**************************************************************************

IF !EMPTY(lcOperand)

lcValue2 = THISFORM.ValidateType(THIS.cboField2.Value,lcValue2)

lcWHERE = lcOperand + " " + lcField2 + " " + ;

lcRelation2 + " " + lcValue2

ENDIF

** Create the first part of the WHERE condition

lcWHERE = "WHERE " + lcField1 + " " + lcRelation1 + " " + lcValue1 + " " + lcWHERE

 

** Create the full SQL command using the base table for the form

lcSQL = "SELECT * FROM " + lcAlias + " " + lcWHERE

****************************************************************************

修改为:

****************************************************************************

If !empty(lcOperand)

lcValue2 = thisform.ValidateType(this.cboField2.value,lcValue2)

lcWhere = lcOperand + " " + lcAlias + "." + lcField2 + " " +;

lcRelation2 + " " +lcValue2

Endif

lcWhere = "Where "+ lcAlias + "." + lcField1 + lcRelation1 + " ";

+ lcValue1 + " " + lcWhere

lcSql = "Select * From " + "DatabaseName!" + lcAlias + " " + lcWhere

****************************************************************************

DatabaseName是你的数据库的名字。以上修改的实质是,给要查询的字段名限定其所在的表别名,给

select form的表别名限定所属的数据库。

2、修改Run

上一页  [1] [2] [3] [4] [5] [6] 下一页

在google里搜索更多一个复合查询方法

Google
Web www.51ec.org
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
我来说两句 对此文章发表了评论
  昵 称: *必填    ·注册用户·
  评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
评 论
内 容

 
评论列表 (最新 评论仅限网友观点!)

供求信息




| 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明