Multiple-step OLE DB operation generated errors.

ASP

6 svar · 199 visningar · startad av kristoffer

Medlem sedan juni 20001 257 inlägg
Trådstart#1

Hej, när jag lägger till en post i min databas via ett formulär dyker ibland följande felmeddelande upp:

Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

Någon som vet vad det beror på?

Medlem sedan dec. 19996 721 inlägg
#2

Visa kod.

Medlem sedan juni 20001 257 inlägg
#3

<html>

<!-- #include virtual="/common/adovbs.inc" -->

<%Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\Database\thebase.mdb"))

Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM tabell1"

RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

RecSet.AddNew

RecSet("Sitenamn") = Request.Form("Sitenamn")
RecSet("URL") = Request.Form("URL")
RecSet("Beskrivning") = Request.Form("Beskrivning")
RecSet("AntalBesok") = 0

RecSet.Update
RecSet.Close
Connect.Close %>

Följande uppgifter har nu lagts till i databasen:<p>

Sitenamn: <b><% =Request.Form("Sitenamn") %></b><p>
URL: <b><% =Request.Form("URL") %></b><p>
Beskrivning: <b><% =Request.Form("Beskrivning") %></b><p>

</html>

Medlem sedan juni 20001 257 inlägg
#4

Nu har jag hittat vad felmeddelandet beror på men ingen lösning på problemet.

Om operationen
RecSet("URL") = Request.Form("URL")
lägger till en URL som är > 50 bokstäver fungerar det inte. URL är av datatyp text i access-databasen. Anledningen till att jag inte använde hyperlänk-datatyp var att det dök upp två #-tecken, ett framför och ett bakom. Alltså: hur ändrar jag så att URL:ar som är större än 50 bokstäver tillåts?

Medlem sedan dec. 19996 721 inlägg
#5

Ändra datatypen så att den tillåter mer. Bara att ställa om i Access (max 255, annars får du välja datatypen till PM)

Men, snälla alla, sluta upp med addnew när det inte verkligen behövs. En vanlig INSERT-sats är mycket snabbare och lättare.

[Redigerat av emission den 20 jun 2000]

Medlem sedan juni 20001 257 inlägg
#6

Hur skulle det se ut då? Med en INSERT-sats alltså.

Medlem sedan dec. 19991 072 inlägg
#7
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\Database\thebase.mdb"))

sql="INSERT INTO tabell1 (Sitenamn, URL, Beskrivning, AntalBesok) VALUES ('"&request.form("sitenamn")&"', '"&Request.Form("URL")&"','"&Request.Form("Beskrivning")&"', 0)"
connect.execute(sql)
connect.close
%>

Så där nånting!

252 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)