08. juli 2005 - 23:20Der er
21 kommentarer og 1 løsning
error '80020009'
Hej Eksperter
Jeg får denne fejl når jeg prøver at køre nedenstående kode: -------------------------------- error '80020009' sidenavn.asp, line 420 --------------------------------
Kode: ------------------------------------------------------------------ <% Set rs_get_newscat = Server.CreateObject("ADODB.RecordSet") rs_get_newscat.open "Select * From [News_Category] where Active = 1 AND Site_Id = " & Site_Id , Conn Do while not rs_get_newscat.EOF Set rs_tjeck_newscat = Server.CreateObject("ADODB.RecordSet") rs_tjeck_newscat.open "Select * From [News_Cat_Config] where News_Config_Id = " & rs_news_config("Id") & " AND News_Cat_Id = " & rs_get_newscat("Id") , Conn Do while not rs_tjeck_newscat.EOF %> <input name="<%=rs_get_newscat("Id")%>" type="checkbox" value="ok" <% If not rs_tjeck_newscat.EOF Then response.write "checked"%>><%=rs_get_newscat("Cat_Name")%><br> <% rs_tjeck_newscat.MoveNext Loop rs_tjeck_newscat.Close rs_get_newscat.MoveNext Loop rs_get_newscat.Close %> ------------------------------------------------------------------
Hmmm... det ligner umiddelbart noget med et indeks som ikke eksisterer, f.eks. et felt i dataabasen som ikke er stavet korrekt eller "støder sammen" med reserverede ord i databasesammenhænge...
Det jeg er lidt mistænksom overfor er hvorvidt du kan lave forespørgsler med tomme talværdier - det tror jeg ikke du må... det er derfor jeg kredser lidt omkring de der id'er...
Hvis jeg fyrer op under access og prøver at udføre en simpel select a la denne:
SELECT * FROM tabel WHERE id=
så får jeg en fejl.
Nu er jeg ikke helt afklaret med hvilken database du bruger, men hvis det er Access, så burde den jo melde denne fejl, hvis forspørgslen indeholder en tom betingelse for en talkolonne...
News_Category må jo have noget indhold siden du kan komme til rs_tjeck_newscat.open. Kan du ikke prøve at vise indeholdet af News_Category (om ikke andet i udpluk)?
<% Set rs_get_newscat = Server.CreateObject("ADODB.RecordSet") rs_get_newscat.open "Select Id, Cat_Name From [News_Category] where Active = 1 AND Site_Id = " & Site_Id , Conn Do while not rs_get_newscat.EOF Set rs_tjeck_newscat = Server.CreateObject("ADODB.RecordSet") rs_tjeck_newscat.open "Select * From [News_Cat_Config] where News_Config_Id = " & rs_news_config("Id") & " AND News_Cat_Id = " & rs_get_newscat("Id") , Conn
CatId = CLng(rs_get_newscat("Id")) CatName = CStr(rs_get_newscat("Cat_Name")) Do while not rs_tjeck_newscat.EOF %> <input name="<%=CatId%>" type="checkbox" value="ok" <% If not rs_tjeck_newscat.EOF Then response.write "checked"%>><%=CatName%><br> <% rs_tjeck_newscat.MoveNext Loop rs_tjeck_newscat.Close rs_get_newscat.MoveNext Loop rs_get_newscat.Close %>
Jeg har en mistanke om, at det er et BUG i ADO i samspil med SQL Server, der bevirker at felter skal aflæses i den rækkefølge de bliver trukket ud - ellers "forsvinder" de fra recordset'et...
I virkeligheden skulle udtrækkene af værdier fra recordset til lokale variable nok have ligget umiddelbart efter den første "Do while...", men jeg er bange for at det ikke gør den store forskel. For en god ordens skyld så har jeg lige rettet koden til igen:
<% Set rs_get_newscat = Server.CreateObject("ADODB.RecordSet") rs_get_newscat.open "Select Id, Cat_Name From [News_Category] where Active = 1 AND Site_Id = " & Site_Id , Conn Do while not rs_get_newscat.EOF CatId = CLng(rs_get_newscat("Id")) CatName = CStr(rs_get_newscat("Cat_Name"))
Set rs_tjeck_newscat = Server.CreateObject("ADODB.RecordSet") rs_tjeck_newscat.open "Select * From [News_Cat_Config] where News_Config_Id = " & rs_news_config("Id") & " AND News_Cat_Id = " & CatId , Conn
Do while not rs_tjeck_newscat.EOF %> <input name="<%=CatId%>" type="checkbox" value="ok" <% If not rs_tjeck_newscat.EOF Then response.write "checked"%>><%=CatName%><br> <% rs_tjeck_newscat.MoveNext Loop rs_tjeck_newscat.Close rs_get_newscat.MoveNext Loop rs_get_newscat.Close %>
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.