了解经典ASP

Mad*_* Zu 2 sql-server adodb cursor-position asp-classic sql-server-2008

我正在查看一些旧代码并发现了一件我似乎无法理解其中的内容......就我所知,它只是一个简单的插入.但为什么他们这样做呢?是否可以重写插入,或者我可能会破坏某些东西?

请看下面:

Set TextRS = Server.CreateObject("ADODB.RecordSet")
 Set TextRS.ActiveConnection = Conn
 TextRS.Source = "SELECT IDX,TIMESTAMP,CURRENTFLAG,TEXT FROM " & TextTable & " WHERE 1=2 FOR UPDATE"
 TextRS.CursorLocation = 2
 TextRS.CursorType = 3
 TextRS.Open ,,,3

 TextRS.AddNew
 TextRS(0).Value = IDX
 TextRS(1).Value = Timestamp
 TextRS(2).Value = "Y"
  TextRS(3).AppendChunk TextPiece
 TextRS.Update

 TextRS.Close
Run Code Online (Sandbox Code Playgroud)

Jor*_*dan 5

这部分消息来源让我有点困惑.... where 1 = 2??? 显然,它的目的是确保不匹配.

无论如何,这种编程风格使用ADO技术相当陈旧,从DAO到ADO的人经常会打开游标以这种方式迭代数据库...它不遵循现代最佳实践,如何做事,你可以和应该用insert语句替换它!

它可能是在jet4.0/access 2000之前编写的,在这种情况下,它是试图模拟参数化存储过程.虽然如果系统比那更现代,我强烈建议使用存储过程,因为它有多种好处.缓存执行计划,参数以减少SQL注入的机会

我实际上习惯于编写非常类似于12年前的代码:p主要是因为我不知道更好,无论使用何种技术.