webForumDet fria alternativet

Multiple-step OLE DB operation generated errors

1 svar · 166 visningar · startad av Eitraz

EitrazMedlem sedan sep. 2002366 inlägg
#1

Har ett märkligt problem som jag inte förstår mig på. I den här koden:

searchstring = split(Trim(searchString)," ")

visa = "SELECT * FROM search WHERE word = '" & Trim(LCase(searchString(i))) & "'"
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
If (RecSet.EOF Or RecSet.BOF) Then
RecSet.AddNew
RecSet("word") = Trim(LCase(searchString(i))) <--
RecSet("antal") = 1
Else
RecSet("antal") = RecSet("antal") + 1
End If
RecSet.Update
RecSet.Close

Felet jag får är:

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.

line 23 (den med <-- )

Tabellens uppbyggnad är:

id | INTEGER(11) | Not Null
word | VARCHAR(255)|
antal | INTEGER(255)|

(har förenklat lite och tagit med det jag tror behövs)

Någon som vet vad felet kan vara??

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Hej och välkommen till Wf

jag vet inte vad felet beror på men du kan testa att skriva om det hela utan att använda recordset. Myodbc har ju inte stöd för alla funktiner som ADO använder

searchArray = split(Trim(searchString)," ") 
searchWord = "'" & trim(lcase(replace(searchArray(0),"'","''"))) & "'"
 connect.execute "update search set antal = antal + 1 where word = " & searchWord,rows,128
if rows = 0 then
   connect.execute "insert into search(antal,word) values(1," & searchWord & ")",,128
end if

Du kan ju också försöka att få ut mer information om felet

for each error in connect.errors
   response.write error.description & "<br>"
next
123 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)