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

悠哉悠哉,一个复合查询方法

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

  =MESSAGEBOX(MSG_LOC,64+0+0,TITLE_LOC)

ELSE

set Classlib to mybut additive

thisformset.addobject("form1","Resultform")

thisform.hide

thisformset.form1.show

Endif

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

运行程序,一切ok!终于实现了动态生成查询条件,动态显示结果。只要再用dbsetprop()语句设置视图为可更新,就能对查询结果进行修改/更新了!这是我见到过的最完美的复合查询了!就这么简单?没错,就这么简单!一个困扰数月的问题,研究的时候峰回路转,最终结果却是如此轻松!这就是编程的艺术吧!
这个问题的解决,虽然走了许多弯路,但是也让我们了解了许多VFP的原理,难道不是很值得吗?!光凭书本的知识,你永远也无法了解这些东西的。有人说:读三年的书,还不如写一个月的程序,不是吗?!其他:

我在本文中省略了开头的动态生成sql语句的部分,具体的做法大家可以研究一下VFP自带的示例应用程序solution中databases目录下的view/queries目录中的Interactively Bulid 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

 

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

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

Google
Web www.51ec.org
  • 上一篇信息学院:

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

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

    供求信息




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