Tja, jag har en sida som har lite asp i sig. Asp:n är i början av sidan och ser ut så här som nedan. Men nu är det så att jag skall byta databas från en accessdatabas till en mysqldatabas. du behöver inte ändra koden. byt bara ut din odbcdsn. Har ändrat till:Ändra från access till mysql i aspkoden.
Tidigare när jag ändrat i koden för andra sidor så har jag använt denna mysqldatabaskoppling:
<code>
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "databasen"
Set objGetData = Server.CreateObject("ADODB.Recordset")
objGetData.Open "SELECT * FROM members, objCon
</code>
men jag vet inte riktigt om man ändra i denna kod (alla fält heter likadant i mysqldatabasen som i accessdatabasen):
<code>
<%
Dim conn
Dim rs
strFilename = "members.mdb"
table = "members"
field = "sidan"
titlefield = "stad"
KeyValue = "id"
bildurl = "bakgrund_bild"
Field1 = "bakgrund_farg"
ID = Session("id")
Set conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath(strFilename)&";pwd=losen"
Table = "Select * from " & Table & " Where " & KeyValue & " = " & Session("id")
rs.Open Table, conn, adOpenKeyset, adLockOptimistic
if not rs.eof then
bg = rs.Fields(Field1).Value
bilden = rs.Fields(bildurl).Value
contents = rs.Fields(field).Value
title = rs.Fields(titlefield).Value
' update record (message and key given)
if Request.Form(field) <> "" then
rs.Fields(field).Value = Request.Form(field)
rs.Fields(titlefield).Value = Request.Form(titlefield)
rs.Update
contents = Request.Form(field)
title = Request.Form(titlefield)
end if
end if
rs.Close
set rs = nothing
conn.Close
set conn = nothing
%>
</code>
Koden fungerade till access. så det är inget fel på aspkoden till access varianten och även mysqlkopplingen har fungerat när jag kopplat den på andra sidor till den mysqldatabas som skall användas.Sv: Ändra från access till mysql i aspkoden.
Öppna kontrollpanelen, leta dig fram till odbc datasources.
Klicka på system. Ta bort accessdsnen som heter "databasen", lägg till en ny mysqldsn som heter "databasen".Sv: Ändra från access till mysql i aspkoden.
<%
Dim conn
Dim rs
field = "sidan"
titlefield = "stad"
KeyValue = "id"
bildurl = "bakgrund_bild"
Field1 = "bakgrund_farg"
ID = Session("id")
Set conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
conn.open "databasen"
Table = "Select * from members Where id = " & Session("id")
rs.Open Table, conn, adOpenKeyset, adLockOptimistic
if not rs.eof then
bg = rs.Fields(Field1).Value
bilden = rs.Fields(bildurl).Value
contents = rs.Fields(field).Value
title = rs.Fields(titlefield).Value
' update record (message and key given)
if Request.Form(field) <> "" then
rs.Fields(field).Value = Request.Form(field)
rs.Fields(titlefield).Value = Request.Form(titlefield)
rs.Update
contents = Request.Form(field)
title = Request.Form(titlefield)
end if
end if
rs.Close
set rs = nothing
conn.Close
set conn = nothing
%>
Kontakten med databasen verkar nu fungera. Men när jag klickar på knappen:
<input type="submit" name="Submit" value="Spara">
...som finns längre ner i koden/på sidan så får jag följande meddelande:
ADODB.Field fel '800a0bcd'
Either BOF or EOF is True, or the current record has been deleted; the operation requested by the application requires a current record.
...Det är meningen att fälten i databasen skall uppdateras ju. Så vad är fel? Det hela fungerade ju med accessdatabas