仓酷云

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

[学习教程] ASP编程:一个复杂的oracle分页存储历程的完成和...

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

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

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

x
国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了oracle|存储历程|分页|oracle|存储历程|分页在看了浩瀚的分页存储历程今后发明都是针对sqlserver的,而没有oracle的,因而想写一个关于oracle的存储历程,由于我用到的数据库是oracle.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
oracle分页存储历程的思绪于sqlserver的思绪是一样的,可是我这里做了点修改,在由于oracle的语法和划定规矩的分歧以是,oracle分页
存储历程看上往有点纷歧样。见笑,见笑!

在oracle的存储过程当中前往纪录集,必要用到游标变量,oracle不克不及像sqlserver那样能够间接前往一个纪录集。
因为假想在.net中把庞大的sql语句天生,以是在存储过程当中没有往思索天生sql语句的成绩。
--------------------------------------------------------------------------------------------------------------------------------------
以下是在oracle中完成的分页存储历程。

createorreplacepackageDotNetis

--Author:good_hy
--Created:2004-12-1313:30:30
--Purpose:

TYPEtype_curISREFCURSOR;--界说游标变量用于前往纪录集

PROCEDUREDotNetPagination(
Pindexinnumber,--分页索引
Psqlinvarchar2,--发生dataset的sql语句
Psizeinnumber,--页面巨细
Pcountoutnumber,--前往分页总数
v_curouttype_cur--前往以后页数据纪录
);

procedureDotNetPageRecordsCount(
Psqlcountinvarchar2,--发生dataset的sql语句
Prcountoutnumber--前往纪录总数
);

endDotNot;

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

createorreplacepackagebodyDotNetis

--***************************************************************************************

PROCEDUREDotNetPagination(
Pindexinnumber,
Psqlinvarchar2,
Psizeinnumber,
Pcountoutnumber,
v_curouttype_cur
)
AS

v_sqlVARCHAR2(1000);
v_countnumber;
v_Plownumber;
v_Pheinumber;
Begin
------------------------------------------------------------取分页总数
v_sql:=selectcount(*)from(||Psql||);
executeimmediatev_sqlintov_count;
Pcount:=ceil(v_count/Psize);
------------------------------------------------------------显现恣意页内容
v_Phei:=Pindex*Psize+Psize;
v_Plow:=v_Phei-Psize+1;
--Psql:=selectrownumrn,t.*fromcd_ssxlt;--请求必需包括rownum字段
v_sql:=select*from(||Psql||)wherernbetween||v_Plow||and||v_Phei;

openv_curforv_sql;

EndDotNetPagination;

--**************************************************************************************

procedureDotNetPageRecordsCount(
Psqlcountinvarchar2,
Prcountoutnumber
)
as

v_sqlvarchar2(1000);
v_prcountnumber;

begin

v_sql:=selectcount(*)from(||Psqlcount||);
executeimmediatev_sqlintov_prcount;
Prcount:=v_prcount;--前往纪录总数

endDotNetPageRecordsCount;

--**************************************************************************************

endDotNot;

------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以下是在.net中挪用oracle分页存储历程的步骤。(vb.net)
在.net挪用前往纪录集的存储历程,必要用到datareader,可是datareader不撑持在datagrid中的分页,因而必要使用datagrid
自界说分页功效。


ProtectedWithEventsDataGrid1AsSystem.Web.UI.WebControls.DataGrid

DimconnAsNewOracleClient.OracleConnection()
DimcmdAsNewOracleClient.OracleCommand()
DimdrAsOracleClient.OracleDataReader

PrivateSubgridbind(ByValpindexAsInteger,ByValpsqlAsString,OptionalByValpsizeAsInteger=10)

conn.ConnectionString="Password=gzdlgis;UserID=gzdlgis;DataSource=gzgis"
cmd.Connection=conn
cmd.CommandType=CommandType.StoredProcedure
conn.Open()

------------------------------------------------------------------------------------
cmd.CommandText="DotNot.DotNetPageRecordsCount"
------------------------------------------------------------------------------------
cmd.Parameters.Add("psqlcount",OracleType.VarChar).Value=psql
cmd.Parameters.Add("prcount",OracleType.Number).Direction=ParameterDirectio</p>ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于WindowsNT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失;
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-20 11:01:10 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
再现理想 该用户已被删除
板凳
发表于 2015-1-29 06:54:56 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
活着的死人 该用户已被删除
地板
发表于 2015-2-5 23:44:05 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
admin 该用户已被删除
5#
发表于 2015-2-14 05:57:54 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
柔情似水 该用户已被删除
6#
发表于 2015-3-4 04:59:20 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
第二个灵魂 该用户已被删除
7#
发表于 2015-3-11 17:12:40 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
兰色精灵 该用户已被删除
8#
发表于 2015-3-27 06:07:27 | 只看该作者
那么,ASP.Net有哪些改进呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 14:52

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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