仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 446|回复: 9
打印 上一主题 下一主题

[学习教程] ASP网页设计一个复合查询办法

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:08:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。几近每一个完全的使用程序城市必要一个复合查询。创建一个功效壮大的复合查询起首必需要可以静态

天生查询前提,其次应当可以对查询到的数据举行修正,最初这个复合查询最好可以对一对多的两个表建

立前提举行查询。

在VFP里创建查询的办法次要有这么几种:一是利用VFP中自带的SearchClass类;二是创建一个查询;

三是创建一个视图,个中包含参数化视图、宏交换Sql语句视图;四是创建一个Grid,将其数据源设置为

SQL语句或一时表。

不论哪种办法,实在质都是利用SQL语句。

这几种办法各有各的长处,也都出缺点。

创建查询的办法最古板,只能创建流动前提的查询,而且不克不及更新数据,最不克不及满意请求。

SearchClass类功效壮大,可是它只能对一个表创建前提举行查询,而且它的源代码太庞大了,几

乎难以举行修正定制;(初学者想必都有过用表单导游创建表单后试图修正txtbtn类、SearchClass类

的履历吧!看到源代码后有几个没昏迷?)

用将Grid的数据源设置为SQL语句或一时表的办法没法修正/更新数据,革新数据也对照坚苦。(这

方面的成绩在网易假造社区VFP版上有过很多会商,人人能够往看看。)

创建视图的办法中,参数化视图也太复杂。不论是用表单控件的值作参数仍是用给参数两头加上引

号的办法都只能对流动的字段举行查询。假如是复合查询,岂非要先创建几十个视图吗?

最有出路的举措仍是用宏交换SQL语句创建视图的举措。视图有着可以对数据举行修正/更新的长处,

假如可以静态天生查询前提,那末就是最完善的查询了。

创建宏交换sql语句视图的详细举措是先静态天生一个Sql语句sqlstatement,然后用宏交换的办法使

用CreateSqlviewviewnameas&sqlstatement来静态创建视图,最初将数据静态显现在一个Grid控

件中。

看到这里,VFP年夜虾们怕会大呼:Stop!你当我是菜鸟啊!你的举措从实际上固然行的通,但实践做

起来就会碰着查询了局在表格上数据没法革新的困难。俺早就试过不可了!你想骗稿费啊!

嘿嘿,这个困难恰恰给我办理了!这就是我意气扬扬的写这篇文章的缘故原由!

成绩的办理

==========

几个月前(好不幸^0^.....),我参照VFP的Sample中的Solution里的InteractivelyBulidasql

statement示例创建了一个复合查询,想将它集成到我本人的程序中。因为该示例是用browse窗口来显现

查询了局的,而我本人的使用程序利用了顶层表单,了局编译后运转才发明Browse窗口在顶层表单中没法

显现。因而我创建了一个有两个表单的表单集,用一个表单makesql静态天生sql语句,在另外一个表单

form1上用grid来显现查询了局的数据,在给Grid设置数据源的时分,成绩来了。起首利用一时表来作为表

格的数据源,了局第一次查询准确,变动前提举行第二次查询时碰着了尽人皆知的“不克不及更新一时表“的错

误;利用sql语句却是能够,但是在表格显现数据前会稀里糊涂的先呈现一个Browse窗口,必需封闭它后

才会显现表格,因为browse窗口在利用顶层表单的程序中没法显现,了局招致程序没法持续实行,这个办

法也不可。

最初只能利用Createsqlviewviewnameas&sqlstatement的举措了,先任意创建一个视图

tempview,把表格的Recordsourcetype属性设置为1-别号,Recordsource属性设置为视图别号tempview,

在表单makesql上创建sql语句后的代码中利用createsqlviewtempviewas&sqlstatement创建视图

Tempview.

实行后发明,第一次查询准确,变动查询前提后再次查询,呈现“视图已存在,要改写吗?“的情形,

按下“断定“后,呈现的表格中没无数据。

制止呈现对话框的成绩好办理,在创建视图前先用renameviewtempviewtooldview,然后用

Deleteviewoldview将旧的视图删除就能够了。代码以下:

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

setdatabasetodatabasename&&databasename是你的数据库称号

&&注重:即便你翻开了数据库也必需写这个语句!不然会呈现“找不到数据库“的毛病。

ifused(“tempview“)

renameviewtempviewtooldview

deleteviewoldview

endif

Createsqlviewtempviewas&sqlstatement

=requery()

IF_TALLY=0

#DEFINEMSG_LOC“没有找到切合前提的记录!“

#DEFINETITLE_LOC“没有找到记录“

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

ELSE

thisform.hide

thisformset.form1.show

Endif

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

可是如许做了今后,表格上没无数据的成绩仍旧存在。查找材料后发明,用Createsqlview语句编

程创建视图的办法,创建视图后要先保留视图界说,再翻开视图后视图中才无数据。因而,必需将Creat

sqlview语句部分代码修正以下:

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

Createsqlviewtempviewas&sqlstatement

use

usetempview

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

满觉得这下成绩办理了,了局更惨。呈现的表格上不仅没无数据,连表头、网格都不见了!这个成绩

百思不得其解,查找材料也没有了局,最初不了了之,一向困扰了我几个月。

就在昨晚,我上床的时分俄然灵光一现:既然表格没法静态加载数据源视图,那末爽性连包括表格的

表单也静态天生!只需表单静态天生,那末表单上的表格工具的数据源不就完整从头加载了吗?也用不着

革新甚么的了!并且,用这个办法也用不着先创建一个tempview视图,完整在程序中静态天生就能够了。

主张必定,即刻下床下手。将本来包括表格的表单form1删除,在上述的代码中最初一句

thisformset.form1.show前拔出以下代码:

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

thisformset.addobject(“form1“,“form“)

withthisformset.form1

.</p>ASP是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的工具可是什么都要收钱的啊!
小妖女 该用户已被删除
沙发
发表于 2015-1-20 07:38:25 | 只看该作者
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
谁可相欹 该用户已被删除
板凳
 楼主| 发表于 2015-1-20 23:49:06 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
若相依 该用户已被删除
地板
发表于 2015-1-24 17:41:56 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
小女巫 该用户已被删除
5#
发表于 2015-1-25 09:52:27 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
6#
发表于 2015-2-2 20:26:35 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
若天明 该用户已被删除
7#
发表于 2015-2-8 05:19:29 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
蒙在股里 该用户已被删除
8#
发表于 2015-2-24 07:12:11 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-7 11:50:18 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
爱飞 该用户已被删除
10#
发表于 2015-3-15 03:01:32 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-13 17:02

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表