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)
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
350 ms totalt · 4 externa anrop · v20260731065814-full.50d4b5bd