首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBScript/ASP经典

VBScript/ASP经典
EN

Stack Overflow用户
提问于 2008-08-25 14:38:38
回答 10查看 6.1K关注 0票数 9

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

  1. 在VBScript/ASP中访问MS SQL Server数据库的首选方法是什么?
  2. 从控制器中分离模型和视图的最佳实践是什么?
  3. 关于VBScript或ASP,还有什么我应该知道的吗?

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

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2008-08-25 15:04:33

ADO是访问VBScript/Classic中数据库的一种很好的方法。

代码语言:javascript
复制
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/

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

票数 20
EN

Stack Overflow用户

发布于 2008-09-18 12:37:21

当我看到第一个答案时,我不得不离开我的电脑,我仍然为它得到了这么多人的认可而感到苦恼。这是最糟糕的ASP代码的一个骇人听闻的例子,它将确保您的站点是SQL可注入的,如果您继续在整个站点使用该代码,则在其生命周期的一英寸内就会被攻击。

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

  1. 不要在代码中显示连接字符串,因为它包含数据库的用户名和密码。使用UDL文件代替,或至少一个常量,可以声明在其他地方,并在整个网站使用。
  2. 对于web环境中的任何操作,使用内联SQL不再有任何好的借口。使用存储过程--安全性的好处怎么强调也不过分。如果你真的做不到,那就把内联参数看作是第二个最好的选择.内联SQL将使您的站点对SQL注入、恶意软件注入和其他内容开放。
  3. 延迟声明变量可能导致草率编码。使用“选项显式”并在函数顶部声明变量。这是最好的实践,而不是真正的WTF,但最好按你的意思开始。
  4. 数据库中没有提示这是哪种类型的连接--这是只用于读取,还是用户正在更新记录?可以优化连接,并且数据库可以非常有效地处理锁定,如果有效地告诉您期望什么。
  5. 数据库连接在使用后不会关闭,记录集对象也没有完全销毁。

ASP仍然是一种强大的语言,尽管许多人建议使用.NET --使用良好的编码实践,可以编写易于维护、可扩展和快速的ASP站点,但您必须确保使用所有可用的方法来提高代码的效率,您必须保持良好的编码实践,并且要有一点预见性。一个好的编辑器也会有帮助,我更喜欢PrimalScript,我发现它比任何最新的以.NET为中心的MS产品都更有帮助。

另外,“备忘录”字段从哪里来?这是访问名称,还是MySQL?我这样问是因为这样的字段在MS中被称为TEXT或NTEXT字段已有十年了。

票数 17
EN

Stack Overflow用户

发布于 2008-09-18 10:34:46

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

我同意JasonS关于课程的看法。的确,你不能做继承之类的事情,但你可以很容易地伪造它

代码语言:javascript
复制
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-CommonInempes.asp--这包括我的通用库(数据库访问、文件函数等),并设置安全性,包括任何配置文件(如连接字符串、目录位置等)和公共类(用户、权限等),并包含在每个页面中。

模块/ModuleName/page.vb.asp-类似于页面后面的代码。包括特定于页面的BO、BLL和DAL类,并设置页面/接收提交的表单数据所需的数据等。

模块/ModuleName/Display/INC-DIS-page.asp-显示page.vb.asp中设置的数据。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档