标题:关于置顶帖< 新手asp编程的基本法则>的不同看法
取消只看楼主
nnigou
Rank: 2
等 级:论坛游民
帖 子:9
专家分:10
注 册:2011-9-8
 问题点数:0 回复次数:3 
关于置顶帖< 新手asp编程的基本法则>的不同看法
①直接连接数据库文件
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("database/yanhang.mdb")

②通过数据源来连接数据库文件
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("database/yanhang.mdb")

那么,两者到底哪一个好呢,当然是第二种,因为第一种其实就是客户端浏览器直接读取数据库的,所以安全方面差很多,第二种通过数据源连接,是以服务器数据源工具连接的,与客户端没关系,所以数据库不会暴露给客户端,安全系数高很多。

这种说法是从哪里来的啊?完全没道理啊

除非你写的方式是写在vbs脚本里面,但是那样就不可能用Server.mappath了,正常的话都是放在<%%>之间,由iis通过asp.dll解析.根本不可能发送到客户端浏览器.所以这种说法毫无意义.
准确的说法是第一种是通过dsn方式连接的,与后一种oledb方式比较起来有一些区别.
1.执行速度不同,后一种要快很多,尤其在十万以上数据量输出的时候,select * from tb语句可能会差到10倍的时间.
2.两种方式得到的rs对象不同.记得前一种方式没法用rs.recordCount
感觉这个资料不是什么太正确的东西,很可能是由新手写的学习笔记,感觉还是不要在置顶帖里面误导新手比较好.
 
至于看法还有别的,秃笔啃特牛....
搜索更多相关主题的帖子: 连接数据库 Microsoft 数据源 
2011-09-08 15:52
nnigou
Rank: 2
等 级:论坛游民
帖 子:9
专家分:10
注 册:2011-9-8
得分:0 
set rs=server.createobject("adodb.recordset")   '(正确写法)
rs.open "select * from dndj",conn,1,3
rs.addnew
rs("bh") = bh
rs("bm") = bm
rs("xm") = xm
rs("xsq") = xsq
rs.update
rs.close
set rs=nothing

set rs=server.createobject("adodb.recordset")  '(错误写法)
sql="insert into dndj(bh,bm,xm,xsq) values('bh','bm','xm','xsq')"
rs.open sql,conn,1,3
这个地方由于正确写法都是没是用字符变量sql,很容易给人一种误解:Rs.open后面要直接跟Sql语句,而不是字符变量,个人觉得应该适当说明一下
Rs.open 这种方式一般是用在获取相关数据(select)语句里面的.至于insert\Update\Delete语句还是直接Conn.execute方式合适并快捷.
秃笔啃特牛......
2011-09-08 16:03
nnigou
Rank: 2
等 级:论坛游民
帖 子:9
专家分:10
注 册:2011-9-8
得分:0 
四、split 截取分隔符前后的内容,得到 AB CD EF GH
<%
dd="AB|CD|EF|GH"
response.write split(dd,"|")(0)   '得到内容是 AB
response.write split(dd,"|")(1)   '得到内容是 CD
response.write split(dd,"|")(2)   '得到内容是 EF
response.write split(dd,"|")(3)   '得到内容是 GH

'可以写成循环语句来将分隔符左右的内容一一显示出来
for i=0 to 3
    response.write split(dd,"|")(i)&"<br/>"
next

'单独调用指定分隔符位置的内容
dim dm(3)  '定义一个循环变量
for i=0 to 3
    dm(i)=split(dd,"|")(i)
next

response.write dm(0)   '得到内容是 AB
response.write dm(1)   '得到内容是 CD
response.write dm(2)   '得到内容是 EF
response.write dm(3)   '得到内容是 GH

'如果不确定 dd 里有多少个分隔符,使用循环参数的时候 to 后面的数字就不能直接写了,需要统计分隔符的数量
for i=0 to UBound(split(dd,"|"))
    dm(i)=split(dd,"|")(i)
next
%>
要将dd="AB|CD|EF|GH"放在数组dm中,还可以直接使用不定义dm为变量的形式
由于asp里面变量类型只有一种,所以可以这样写
dim dm
dm=split(dd,"|")
这样可以免去操作数组的繁杂
秃笔啃特牛......
2011-09-08 16:05
nnigou
Rank: 2
等 级:论坛游民
帖 子:9
专家分:10
注 册:2011-9-8
得分:0 
总的来说楼主写的东西已经很好,非常适合asp新手学习
asp是一个很简单的web语言,入门很容易,如果有vb底子有明师教授自己再努力钻研,几个月就可以写一些程序了.但是写程序容易,怎么能使用好asp比较难一些.我认为"会"asp的标准不在于能够写一些基本的程序页面,而是遇到错误的时候通过自己的归纳总结判断出错误可能出在什么地方,要如何去处理错误.所以希望大家都能好好学习,深入研究这个体系,在楼主这样的良师益友指导下迅速进步.
2011-09-08 16:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-349482-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.192160 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved