När jag försöker uppdatera min databas (mysql) så får jag följande felmedelande: Jag tror det beror på att du använder fel typ av cursor. Med den koden får jag ett helt nytt fel! Om du har deklarerart konstanterna eller inkluderat en fil där de deklarears (genom t. ex. vbado.inc filen) så behöver du inte deklarera konstanetrna. <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> Hej !Microsoft Cursor Engine (0x80040E21) i ASP/MySQL.
Error Type:
Microsoft Cursor Engine (0x80040E21)
Multiple-step operation generated errors. Check each status value.
/npc/change.asp, line 9
Koden ser ut som följande:
<------------------------------------------------>
<%
strSqlChange = "SELECT * FROM objects WHERE Id = " & request.form("txtId")
rsChange.CursorLocation = adUseClient
rsChange.Open strSqlChange, objCon,3,3
rsChange("npcName") = request.form("txtName") 'Rad 9.
rsChange("ship") = request.form("txtShip")
rsChange("hull") = request.form("txtHull")
rsChange("armor") = request.form("txtArmor")
rsChange("shield") = request.form("txtShield")
rsChange("range") = request.form("txtRange")
rsChange("velocity") = request.form("txtVelocity")
rsChange("em") = request.form("txtEm")
rsChange("exp") = request.form("txtExp")
rsChange("ki") = request.form("txtKi")
rsChange("tm") = request.form("txtTm")
rsChange("maxrange") = request.form("txtmaxrange")
rsChange("falloff") = request.form("txtFalloff")
rsChange("dmgMult") = request.form("txtDmgMult")
rsChange("mslDmgMult") = request.form("txtMslDmgMult")
rsChange("mslUsed") = request.form("txtMslUsed")
rsChange("mslDmg") = request.form("txtMslDmg")
rsChange("mslDmgType") = request.form("txtMslType")
rsChange.Update
rsChange.Close
%>
<------------------------------------------------>
Har precis bytt till mySql och är inte så hemma på det än...
Vad är problemet?
/AndersSv: Microsoft Cursor Engine (0x80040E21) i ASP/MySQL.
Testa med:
<code>
<%
Const adUseServer = 2
Const adOpenKeyset = 1
Const adLockOptimistic = 3
strSqlChange = "SELECT * FROM objects WHERE Id = " & request.form("txtId")
rsChange.CursorLocation = adUseServer
rsChange.Open strSqlChange, objCon, adOpenKeyset, adLockOptimistic
If rsChange.EOF Then
Response.Write "Post saknas"
Else
rsChange("npcName") = request.form("txtName")
rsChange("ship") = request.form("txtShip")
rsChange("hull") = request.form("txtHull")
rsChange("armor") = request.form("txtArmor")
rsChange("shield") = request.form("txtShield")
rsChange("range") = request.form("txtRange")
rsChange("velocity") = request.form("txtVelocity")
rsChange("em") = request.form("txtEm")
rsChange("exp") = request.form("txtExp")
rsChange("ki") = request.form("txtKi")
rsChange("tm") = request.form("txtTm")
rsChange("maxrange") = request.form("txtmaxrange")
rsChange("falloff") = request.form("txtFalloff")
rsChange("dmgMult") = request.form("txtDmgMult")
rsChange("mslDmgMult") = request.form("txtMslDmgMult")
rsChange("mslUsed") = request.form("txtMslUsed")
rsChange("mslDmg") = request.form("txtMslDmg")
rsChange("mslDmgType") = request.form("txtMslType")
rsChange.Update
Response.Write "Post har uppdaterats"
End If
rsChange.Close
%>
</code>Sv: Microsoft Cursor Engine (0x80040E21) i ASP/MySQL.
Error Type:
Microsoft VBScript compilation (0x800A0411)
Name redefined
/npc/change.asp, line 5, column 6
Const adUseServer = 2Sv: Microsoft Cursor Engine (0x80040E21) i ASP/MySQL.
Rema dem eller ta bort dem en och en om du inte använder Option Explicit. Sv: Microsoft Cursor Engine (0x80040E21) i ASP/MySQL.
<!--#include file="common/includes/dbOpen.asp"-->
<!--#include file="./common/includes/adovbs.inc"-->
<%
'Const adUseServer = 2
'Const adOpenKeyset = 1
'Const adLockOptimistic = 3
strSqlChange = "SELECT * FROM objects WHERE Id = " & request.form("txtId")
rsChange.CursorLocation = adUseServer
rsChange.Open strSqlChange, objCon, adOpenKeyset, adLockOptimistic
If rsChange.EOF Then
Response.Write "Post saknas"
Else
rsChange("npcName") = request.form("txtName")
rsChange("ship") = request.form("txtShip")
rsChange("hull") = request.form("txtHull")
rsChange("armor") = request.form("txtArmor")
rsChange("shield") = request.form("txtShield")
rsChange("range") = request.form("txtRange")
rsChange("velocity") = request.form("txtVelocity")
rsChange("em") = request.form("txtEm")
rsChange("exp") = request.form("txtExp")
rsChange("ki") = request.form("txtKi")
rsChange("tm") = request.form("txtTm")
rsChange("maxrange") = request.form("txtmaxrange")
rsChange("falloff") = request.form("txtFalloff")
rsChange("dmgMult") = request.form("txtDmgMult")
rsChange("mslDmgMult") = request.form("txtMslDmgMult")
rsChange("mslUsed") = request.form("txtMslUsed")
rsChange("mslDmg") = request.form("txtMslDmg")
rsChange("mslDmgType") = request.form("txtMslType")
rsChange.Update
Response.Write "Post har uppdaterats"
End If
rsChange.Close
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<% response.Write(request.form("txtId")) %>
</body>
</html>
<!--#include file="common/includes/dbOpen.asp"-->
Så ser hela min kåd ut nu...
Om jag kör den så här så får jag:
------------------------
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
/npc/change.asp, line 15
------------------------
I adovbs ligger bla samma värden som du skrev att jag skulle lägga till. (bortremmade här)
Kan det hjälpa att prova att sätta alla fält till "longtext" eller nåot liknande?Sv: Microsoft Cursor Engine (0x80040E21) i ASP/MySQL.
mysql är inte så bra att hantera recordset.update
Det blir ofta fel
kör updatering av databasen genom sql kod istället.