webForumDet fria alternativet

Multiple-step OLE DB operation generated errors.

6 svar · 181 visningar · startad av kristoffer

kristofferMedlem sedan juni 20001 257 inlägg
#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å?

emissionMedlem sedan dec. 19996 721 inlägg
#2

Visa kod.

kristofferMedlem 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>

kristofferMedlem 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?

emissionMedlem 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]

kristofferMedlem sedan juni 20001 257 inlägg
#6

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

fredrikMedlem 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!

------------------
Fredrik Klarqvist
fredrik.klarqvist@swipnet.se
www.streetwise.se/fredrik/

[Redigerat av fredrik den 20 jun 2000]

[Redigerat av fredrik den 20 jun 2000]

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)