Databasregister
OBS! Om du har en version av Consolo med nummer 1.26 eller lägre, så måste du uppdatera Consolo. Ett fel vid sparande av poster i databas åtgärdades i version 1.27.
Skript för att spara
Filen som anges under databasregistrets värde Spara kommer att anropas av Consolo när redaktören sparar en exiterande eller ny post med hjälp av formuläret som angetts i Skript för redigering.
Invärden som skickas till skriptet med POST:
- Consolo skickar in lösenordet som angetts i konfigurationen som en variabel password. Kontrollera denna i skriptet.
- Om en existerande post ska sparas så kommer Consolo att skicka in ett värde id till skriptet. Värdet hämtas från första kolumnen i List-skriptet. Om en ny post ska skapas i registret, kommer Consolo att även då anropa detta skript fast utan värdet id.
- Consolo skickar in hela xml-koden i en variabel som heter data. Analysera detta xml-data i ASP och XML, och spara variablerna i databasen.
Respons från skriptet ska ges på följande form:
<?xml version="1.0" encoding="ISO-8859-1"?>
<RESPONSE>
<RESULT>0/1</RESULT>
<MESSAGE>Message</MESSAGE>
<ID>Id</ID>
</RESPONSE>
- Värdet RESULT ska vara 0 eller 1, anger om datat har sparats eller inte.
- Värdet MESSAGE innehåller ett meddelande som redaktören ska få se.
- Värdet ID anger vilket id-nummer en ny post fick. Om det är en existerande post som ändrats, så är det bra att ange det inkommande id-numret här.
Tack vare den här lösningen kan du själv kontrollera uppgifterna som skickas in och meddela användaren vad som var fel och som ska korrigeras.
Exempel
Det här exemplet visar hur man gör ett skript för att spara i ASP kopplat till SQL. Om du använder någon annan teknik på din server, så översätt skriptet till önskat språk.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- #INCLUDE VIRTUAL= '/consolo/db_opendb.asp'-->
<% If Request("password") <> "abc123" Then Response.End
tId = Request("id")
Set xmlDoc = Server.CreateObject("msxml2.DOMDocument")
xmlDoc.async = False
If xmlDoc.loadXML(Request("data")) Then
Set xmlNodes = xmlDoc.childNodes
aTitle = xmlDoc.getElementsByTagName("Title_VC").item(0).Text
aText = xmlDoc.getElementsByTagName("Text_VC").item(0).Text
aDate = xmlDoc.getElementsByTagName("Date_VC").item(0).Text
aNewspaper = xmlDoc.getElementsByTagName("Newspaper_VC").item(0).Text
If tId = "" Then
' New object
SQLstr = "INSERT INTO Presscutting_T (Title_VC, Text_VC, Date_VC, Newspaper_VC) VALUES (" & SSQn(aTitle) & SSQc(aText) & SSQc(aDate) & SSQc(aNewspaper) & ")"
Connect.Execute(SQLstr)
Set RS = Connect.Execute("SELECT MAX(Presscutting_ID) As New_ID FROM Arbetsliv_Presscutting_T")
tId = RS("New_ID")
Else
' Save to existing object
SQLstr = "UPDATE Presscutting_T SET "
SQLstr = SQLstr & "Title_VC = " & SSQn(aTitle)
SQLstr = SQLstr & ", Text_VC = " & SSQn(aText)
SQLstr = SQLstr & ", Date_VC = " & SSQn(aDate)
SQLstr = SQLstr & ", Newspaper_VC = " & SSQn(aNewspaper)
SQLstr = SQLstr & " WHERE Presscutting_ID = " & tId
Connect.Execute(SQLstr)
End If
%>
<RESPONSE>
<RESULT>1</RESULT>
<MESSAGE>Pressklippet har sparats.</MESSAGE>
<ID><%=tId%></ID>
</RESPONSE>
<% Else %>
<RESPONSE>
<RESULT>0</RESULT>
<MESSAGE>Ett fel uppstod och pressklippet kunde inte sparas.</MESSAGE>
<ID><%=tId%></ID>
</RESPONSE>
<% End If
Function SSQn(str)
str = Replace(str, "'", """")
SSQn = "'" & str & "'"
End Function
Function SSQc(str)
str = Replace(str, "'", """")
SSQc = ", '" & str & "'"
End Function
%>