|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,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还有更多的扩展,可以用存储过程,数据库大小无极限限制。 |
|