我從來沒有使用過像這樣的代碼,並且在如何將代碼輸出到asp經典頁面時丟失了代碼。 我試着簡單地調用rs(「theFile」),但是,這沒有奏效。 這是打破,給我一個錯誤。帶「SET」輸出到ASP Classic的SQL查詢
這裏是代碼,帶演示行,輸出。 我需要把代碼放在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與數據庫交談的教程 - 這裏有一個。 http://www.4guysfromrolla.com/webtech/faq/Databases/faq4.shtml – John
約翰3,對不起,我沒有剩下的代碼了。我知道如何顯示記錄,以及上面的代碼,我只是需要知道如何讓它顯示記錄。即使使用代碼中提供的記錄,仍然會出現該錯誤。所以。任何想法的任何人如何獲得此代碼,以顯示記錄... –
你錯過了'不'從'如果不是rsSongs.EOF然後'''如果'語句在此刻只會得到「顯示記錄在這裏」當沒有記錄顯示時。 'If Not'則相反,當Recordset沒有到達EOF時,你將會「在這裏顯示記錄」。如果記錄集已達到EOF(文件結束),它將被關閉,因爲沒有要顯示的記錄。 – Lankymart