【发布时间】:2016-03-11 13:06:07
【问题描述】:
我以前从未使用过这样的代码,并且不知道如何将代码输出到 asp 经典页面。 我尝试简单地调用 rs("theFile") 但是,这不起作用。 它正在破坏并给我一个错误。
这是要输出的代码,带有演示行。 我需要将代码以与在 SSMS 中输出相同的方式放在经典 ASP 页面中。
Set sqlGetSong = Server.CreateObject("ADODB.Command")
sqlGetSong.ActiveConnection=EV_WikiConn
sqlGetSong.Prepared = true
sqlGetSong.commandtext = "DECLARE @seperator INT;" & vbCrLf & _
"Declare @String nvarchar(max);" & vbCrLf & _
"Declare @Tab TABLE (DT VARCHAR(100));" & vbCrLf & _
"set @String='File_Date_(Jan_21,_1976) / File_Date_(Mar_18,_1996) / File_Date_(Jan_22,_1983) / File_Date_(Jan_20,_1983) / File_Date_(Jan_14,_1976) / File_Date_(Jan_18,_1979) / File_Date_(Dec_18,_1979)';" & vbCrLf & _
"WHILE (CHARINDEX('/', @String, 0) > 0) BEGIN" & vbCrLf & _
"SET @seperator = CHARINDEX('/', @String, 0);" & vbCrLf & _
"INSERT INTO @Tab (DT) SELECT RTRIM(LTRIM(SUBSTRING(@String, 0, @seperator)));" & vbCrLf & _
"SET @String = STUFF(@String, 1, @seperator, '');" & vbCrLf & _
"END" & vbCrLf & _
"INSERT INTO @Tab (DT) SELECT RTRIM(LTRIM(@String));" & vbCrLf & _
"select DT as theFile from" & vbCrLf & _
"(select right(REPLACE(DT,right(DT,7),''),2)DY, right(REPLACE(DT, ')',''), 4)YR, * from @Tab) A" & vbCrLf & _
"order by YR, DY;"
set rsSongs = sqlGetSong.execute
if rsSongs.eof then
' show records here
end if
这里给我一个错误:
if rsSongs.eof then
对象关闭时不允许操作。
谁能告诉我如何将此代码输出到经典 ASP。 谢谢你 韦恩
【问题讨论】:
-
您提供的代码是纯SQL,没有经典的asp VBScript。您的错误消息意味着您尚未打开记录集对象。我认为您需要阅读有关如何使用 Classic ASP 与数据库对话的教程 - 这是一个。 4guysfromrolla.com/webtech/faq/Databases/faq4.shtml
-
John 3,对不起,我没有剩下的代码。我知道如何显示记录,而上面的代码,我只需要知道如何让它显示记录。即使使用代码中提供的记录,仍然会给出该错误。所以。关于如何获取此代码、显示记录的任何想法...
-
您缺少来自
If Not rsSongs.EOF Then的Not,此时If语句只会在没有要显示的记录时进入“在此处显示记录”。If Not则相反,当 Recordset 未达到 EOF 时,您将“在此处显示记录”。如果记录集已达到 EOF(文件结尾),它将被关闭,因为没有记录可显示。 -
那是一个错误类型的 Lankymart。代码的问题在于它不会显示记录,即使它们在那里,它也不会显示它们。使用 If rs.eof then,,,,, else..... end if.... 不起作用.....
-
终于回到了这个问题上。瘦长的,这行得通,添加了 SET NOCOUNT ON。但是,它只返回一条记录,而且有很多条记录。我将如何使用 NextRecordSet。我以前从未使用过它,现在正在寻找有关它的信息。