仓酷云

标题: ASP教程之怎样做一个高效的ASP数据库操纵程序 [打印本页]

作者: 老尸    时间: 2015-1-16 22:48
标题: ASP教程之怎样做一个高效的ASP数据库操纵程序
实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。程序|数据|数据库<!--
蛙蛙保举:怎样做一个高效的ASP数据库操纵程序
一样平常情形下我们做的ASP数据库程序都是ADO+ACCESS,而且都是利用一些查询字符串加纪录集来操纵数据库,最多也只利用了connection和recordset两个工具和它们的几个经常使用的属性和办法,实在ADO的利用远不但这些,我们另有command工具和Parameters工具没有效呢,而这两个工具用好了会进步你全部ASP程序的功能.
我这里写了一个歌词办理程序,用的是sqlserver数据库和存储历程完成的,(这里没有效参数化查询,也恰是为了演示ado对sqlserver和存储历程的用法).
但愿人人能从我的示例代码中学到新的器材,嘿嘿.
注重:我把示例代码内里的asp界限符(就是尖括号加上一个百分号的谁人标识)交换成了全角中文的尖括号,由于良多论坛会过滤这个标记,再你复制跋文着把它交换成英文半角的.
-->
<!--数据库剧本-->
<!--先在sqlserver里新建个数据库song然后在查询剖析器里选择这个数据库,赋值上面的t-sql代码实行批查询,最初把这个页放在假造目次下,并把个中的数据库毗连字符串修正成合适你的数据库设置的字符串,运转本页就能够了-->
<!--
ifexists(select*fromdbo.sysobjectswhereid=object_id(N[dbo].[check_song])andOBJECTPROPERTY(id,NIsProcedure)=1)
dropprocedure[dbo].[check_song]
GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N[dbo].[insert_song])andOBJECTPROPERTY(id,NIsProcedure)=1)
dropprocedure[dbo].[insert_song]
GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N[dbo].[p_song_list])andOBJECTPROPERTY(id,NIsProcedure)=1)
dropprocedure[dbo].[p_song_list]
GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N[dbo].[p_wawa_song])andOBJECTPROPERTY(id,NIsProcedure)=1)
dropprocedure[dbo].[p_wawa_song]
GO

ifexists(select*fromdbo.sysobjectswhereid=object_id(N[dbo].[wawa_song])andOBJECTPROPERTY(id,NIsUserTable)=1)
droptable[dbo].[wawa_song]
GO

CREATETABLE[dbo].[wawa_song](
[song_id][int]IDENTITY(1,1)NOTNULL,
[song_name][char](40)COLLATEChinese_PRC_CI_ASNOTNULL,
[song_content][varchar](4000)COLLATEChinese_PRC_CI_ASNOTNULL,
[song_author][char](20)COLLATEChinese_PRC_CI_ASNULL,
[author_id][int]NULL
)ON[PRIMARY]
GO

SETQUOTED_IDENTIFIERON
GO
SETANSI_NULLSON
GO

/*
历程check_song,经由过程@song_name变量来查询数据表中是不是有反复的纪录,假如有则设定@state这个输出参数的值为1,该值间接影响到addnew历程的运转
*/
createproccheck_song
@song_namechar(40),
@stateintoutput
as
begin
ifexists(selectsong_namefromwawa_song
wheresong_name=@song_name)
set@state=1
else
set@state=0
end

GO
SETQUOTED_IDENTIFIEROFF
GO
SETANSI_NULLSON
GO

SETQUOTED_IDENTIFIERON
GO
SETANSI_NULLSON
GO

/*
历程insert_song
*/
CREATEprocinsert_song
@song_namechar(40),
@song_contentvarchar(4000),
@song_authorchar(20)
as
begin
declare@stateint
execcheck_song@song_name,@stateoutput
if@state=0
begin
begintran
insertintowawa_song(song_name,song_content,song_author)values(@song_name,@song_content,@song_author)
committran
raiserror(%s增加乐成!,16,1,@song_name)
end
else
begin
raiserror(用户名%s已存在!,16,1,@song_name)
return
end
end

GO
SETQUOTED_IDENTIFIEROFF
GO
SETANSI_NULLSON
GO

SETQUOTED_IDENTIFIEROFF
GO
SETANSI_NULLSOFF
GO

CREATEPROCEDURE[p_song]AS
select*fromwawa_songorderbysong_iddesc
GO
SETQUOTED_IDENTIFIEROFF
GO
SETANSI_NULLSON
GO

SETQUOTED_IDENTIFIEROFF
GO
SETANSI_NULLSOFF
GO

createprocp_wawa_song
@idint
as
selectsong_id,song_name,song_author,song_contentfromwawa_songwheresong_id=@id
GO
SETQUOTED_IDENTIFIEROFF
GO
SETANSI_NULLSON
GO

-->
<!--/数据库剧本-->
<!--数据库毗连-->
《%
Dimconn,strconn
Setconn=Server.CreateObject("ADODB.Connection")
假如你的数据库的毗连字符串和上面一句不切合,能够修正下句代码来合适你的数据库设置
strconn="Driver={sqlserver};server=192.168.0.110;database=song1;uid=sa;pwd=sa;"
conn.Openstrconn
%》
<!--/数据库毗连-->
<!--猎取本页地点-->
《%
DimfileName,postion
fileName=Request.ServerVariables("script_name")
postion=InstrRev(fileName,"/")+1
fileName=Mid(fileName,postion)
%》
<!--/猎取</p>因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。
作者: 再现理想    时间: 2015-1-20 05:01
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
作者: 若相依    时间: 2015-1-26 07:30
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
作者: 爱飞    时间: 2015-2-9 23:53
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
作者: 乐观    时间: 2015-2-28 09:05
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
作者: 分手快乐    时间: 2015-3-17 02:09
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
作者: 若天明    时间: 2015-3-23 15:24
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2