0
我需要使用傳統的ASP從SQL2005 express數據庫創建一個XML文件。我正在接受500錯誤。我相信我的問題是連接字符串,我想知道如果我能夠得到一個新的眼睛,這可能爲我提供一個新的途徑。這裏是代碼:經典的ASP腳本來創建XML
<%
Dim objConn, strConnect, strSQL, rs, tb, objFSO, xmlFile, objWrite
xmlFile = Server.MapPath("inventory.xml")
tb = chr(9)
set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=SQLOLEDB;Data Source=mybox.com;Initial Catalog=myDB;UserId=myID;Password=myPW;"
If Not objFSO.FileExists(xmlFile) Then objFSO.CreateTextFile(xmlFile)
set objWrite = objFSO.OpenTextFile(xmlFile, 2)
objWrite.WriteLine("<?xml version=""1.0"" encoding=""ISO-8859-1""?>")
objWrite.WriteLine("<data>")
strSQL = "SELECT * FROM table1"
Set rs = objConn.Execute(StrSQL)
Do While not rs.EOF
objWrite.WriteLine(tb & "<marker>")
objWrite.WriteLine(tb & tb & "<name>" & rs("name") & "</name>")
objWrite.WriteLine(tb & tb & "<address>" & replace(rs("address"),"&","&") & "</address>")
objWrite.WriteLine(tb & tb & "<city>" & rs("city") & "</city>")
objWrite.WriteLine(tb & tb & "<state>" & rs("size") & "</state>")
objWrite.WriteLine(tb & tb & "<zipcode>" & rs("zipcode") & "</zipcode>")
objWrite.WriteLine(tb & tb & "<lat>" & rs("lat") & "</lat>")
objWrite.WriteLine(tb & tb & "<lng>" & rs("lng") & "</lng>")
objWrite.WriteLine(tb & "</marker>")
rs.MoveNext
Loop
objWrite.WriteLine("</data>")
objWrite.Close()
%>
我很欣賞任何人都可以分享的新鮮視角。 謝謝, - 馬特
與您的500錯誤無關,所以這只是一條評論,但您需要清理每條記錄中的數據字段,以確保輸出中格式良好的xml。這意味着至少要查找數據中可能存在的流浪符號(&),較少的流星符號(<)和其他一些雜散字符,並且如果字符數據太多以至於無法簡單處理,則可能使用cdata節。 –
此外,你應該能夠找到確切的錯誤信息。錯誤500只是創建的環繞我們想知道的真實錯誤的http錯誤。 –
與你的錯誤無關的另一個挑剔是檢查'.FileExists()'不是一個好主意。相反,將代碼中的調用包裝爲'CreateTextFile()'來檢查並正確處理錯誤。 –