当前位置:  开发笔记 > 后端 > 正文

VBScript/ASP Classic

如何解决《VBScript/ASPClassic》经验,为你挑选了3个好方法。

我有几个关于VBScript和ASP Classic的问题:

    在VBScript/ASP中访问MS SQL Server数据库的首选方法是什么?

    关于从控制器中分离模型的最佳实践是什么?

    关于VBScript或ASP,我应该知道的任何其他事情?

如果您没有注意到,我是VBScript编码的新手.我意识到数字2和3是一种过于笼统的巨型"黑洞"问题,所以不要以为我希望从这里学到关于这两个问题的所有知识.



1> Michael Pryo..:

ADO是在VBScript/Classic ASP中访问数据库的绝佳方式.

Dim db: Set db = Server.CreateObject("ADODB.Connection")
db.Open "yourconnectionstring -> see connectionstrings.com"
Dim rs: Set rs = db.Execute("SELECT firstName from Employees")
While Not rs.EOF
    Response.Write rs("firstName")
    rs.MoveNext
Wend
rs.Close

更多信息:http://www.technowledgebase.com/2007/06/12/vbscript-how-to-create-an-ado-connection-and-run-a-query/

需要注意的是,如果要在记录集中返回MEMO字段,请确保一次只选择一个MEMO字段,并确保它是查询中的最后一列.否则你会遇到问题.(参考:http://lists.evolt.org/archive/Week-of-Mon-20040329/157305.html)



2> Cirieno..:

当我看到第一个答案时,我不得不离开我的电脑,并且仍然感到很难受到这么多人的批准.这是最糟糕的ASP代码的一个令人震惊的例子,它确保您的网站是可注入SQL的,并且,如果您继续在整个网站上使用此代码,则可以在其生命的一英寸内进行破解.

这不是你应该给ASP编码新手的那种代码,因为他们会认为这是用这种语言编写代码的专业方式!

    切勿在代码中显示连接字符串,因为它包含数据库的用户名和密码.使用UDL文件,或者至少是一个可以在其他地方声明并在整个站点中使用的常量.

    对于Web环境中的任何操作,使用内联SQL不再有任何好的借口.使用存储过程 - 不能强调安全性好处.如果你真的不能这样做,那么将内联参数看作第二个最佳选项...内联SQL将使您的站点对SQL注入,恶意软件注入和其他内容保持开放.

    迟到的变量声明可能导致编码草率.使用"option explicit"并在函数顶部声明变量.这是最佳实践,而不是真正的WTF,但最好从你的意思开始.

    没有提示数据库这是什么类型的连接 - 是仅用于读取,还是用户将更新记录?可以优化连接,并且如果有效地告知了预期的结果,数据库可以非常有效地处理锁定.

    使用后数据库连接未关闭,并且记录集对象未完全销毁.

ASP仍然是一个强大的语言,尽管很多人建议迁移到.NET - 具有良好的编码习惯的ASP网站可以写,易于维护,可扩展性和快速的,但你必须确保你使用所有可用的方法,使你的代码有效,你必须保持良好的编码实践和一点预见.一个好的编辑器也会有所帮助,我更喜​​欢PrimalScript,我觉得它比ASP编码器对任何看起来非常以.NET为中心的最新MS产品更有帮助.

另外,"MEMO"字段在哪里?这是Access的命名法,还是MySQL?我问这些字段在MS-SQL中被称为TEXT或NTEXT字段已有十年了.


1.如果您的Web服务器被任何方法攻击或访问,那么您的数据库现在也是一个开放目标,这要归功于代码中的用户名和密码.

3> jammus..:

记住编程语言而不是编程.仅仅因为你使用有限的工具集并不意味着你必须像1999年一样编程.

我同意JasonS的课程.这是真的,你不能做继承等事情,但你可以很容易地伪造它

Class Dog
    Private Parent

    Private Sub Class_Initialize()
        Set Parent = New Animal
    End Sub

    Public Function Walk()
        Walk = Parent.Walk
    End Function

    Public Function Bark()
        Response.Write("Woof! Woof!")
    End Function
End Class

在我的项目中,ASP页面将具有以下内容:INC-APP-CommonIncludes.asp - 这包括我的通用库(数据库访问,文件函数等)之类的东西,并设置安全性并包括任何配置文件(如连接字符串,目录)位置等)和公共类(用户,权限等),并包含在每个页面中.

Modules/ModuleName/page.vb.asp - 有点像页面后面的代码.包括页面特定的BO,BLL和DAL类,并设置页面/接收提交的表单数据等所需的数据

Modules/ModuleName/Display/INC-DIS-Page.asp - 显示page.vb.asp中设置的数据.

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有