Multiple-step OLE DB operation generated errors

Databaser & SQL

1 svar · 184 visningar · startad av Eitraz

Medlem sedan sep. 2002366 inlägg
Trådstart#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??

Medlem 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
288 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
158 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
158 ms — ändringar (db)