<%
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("users.mdb")
SQL = "select f1.FID, f1.Namn, f1.Rubrik, f1.Inlagg, " & _
" max(iif(f2.Datum is null,f1.datum,f2.datum)) " & _
" from forum f1 left outer join forum f2 " & _
" on f1.fid = f2.svar " & _
" where f1.svar = 0 " & _
" group by f1.FID, f1.Namn, f1.Rubrik, f1.Inlagg " & _
" order by 5 desc"
Set rs = db.Execute(SQL)
Do until rs.EOF
%>
Med denna kod får jag detta fel:
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/slauson/db/1/forum.asp, line 15
MEN, bara ibland. Det är det som är det skumma.
Ibland så syns trådarna som dom sak.
Det var LarsG som hjälpte mig med den här satsen förut, så han kanske vet så där på rak hand vad som är fel. Om det nu inte är jätte enkelt att lista ut, vilket det bergis är.
Mvh Magnus
Jag är förvånad att ingen svarar, kan ingen detta? :(
@ndersMedlem sedan juni 200032 969 inlägg Det är underligt med intermittenta fel.
I övrigt: när funkar det, och när funkar det inte?
Jag tycker också att du ska byta connectionstring, som jag skrev i din maratontråd häromdagen.
mvh
Kan det hjälpa att buta connection string?
När det funkar och inte funkar? Ja du, när det vill och inte vill helt enkelt. :)
Engine^Medlem sedan dec. 20003 887 inlägg Byta Connectionstring
db.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("users.mdb")
Har nu bytt connection string och får detta härliga fel meddelande med jämna mellanrum...
Microsoft JET Database Engine error '80040e10'
No value given for one or more required parameters.
/slauson/db/1/forum.asp, line 20
Inget har ändrats förutom felkoden med andra ord.
VimpMedlem sedan juli 20022 537 inlägg Testa att skriva ut SQL-satsen innan den körs.
LarsGMedlem sedan dec. 200012 464 inlägg Det är samma fel.
I och med att SQL-satsen alltid är den samma så är det inte den som är problemet.
Kanske du har en något korrupt databas?
@ndersMedlem sedan juni 200032 969 inlägg Response.write SQL
Men i det här fallet spelar det ingen roll, eftersom det inte finns några variabelvärden i frågan.
Jag tror snarare på det LarsG säger, Kanske du har en något korrupt databas?. Prova att reparera.
Hur reparerar man?
Men...
Jag hade ett forum med samma SQL-sats förut. Fast annan databas. Men jag fick ändå samma felmeddelande.
@ndersMedlem sedan juni 200032 969 inlägg
magnusfernstrom skrev:
Hur reparerar man?
Man väljer reparera eller liknande i någon av menyerna, gissar jag. :)
magnusfernstrom skrev:
Jag hade ett forum med samma SQL-sats förut. Fast annan databas. Men jag fick ändå samma felmeddelande.
Lika intermittent?
Felmeddelandet i sig innebär "Det är ett tabell- eller fältnamn jag inte känner igen", så det är skumt att det fungerar lite då och då...
LeonLMedlem sedan dec. 20025 871 inlägg Att reparera databas
Verktyg -> Databasverktyg -> Komprimera och reparera databas... :)
Nu fungerar det, hurra :)
Men ett annat fel som jag inte förstår mig på är att den sroterar rätt med denna SQL-sats:
SQL = "select f1.FID, f1.Namn, f1.Rubrik, f1.Inlagg, " & _
" max(iif(f2.Datum is null,f1.datum,f2.datum)) " & _
" from forum f1 left outer join forum f2 " & _
" on f1.fid = f2.svar " & _
" where f1.svar = 0 " & _
" group by f1.FID, f1.Namn, f1.Rubrik, f1.Inlagg " & _
" order by 5 desc"
Men inte med denna:
SQL = "select f1.FID, f1.Namn, f1.Rubrik, f1.Inlagg, f1.KlisterRubrik, " & _
" max(iif(f2.Datum is null,f1.datum,f2.datum)) " & _
" from forum f1 left outer join forum f2 " & _
" on f1.fid = f2.svar " & _
" where f1.svar = 0 " & _
" group by f1.FID, f1.Namn, f1.Rubrik, f1.Inlagg, f1.KlisterRubrik " & _
" order by 5 desc"
Med denna kod så sorterar den inte så att den tråd som fått senaste svar hoppar högst upp!
Vad är det nu som är fel då?
@ndersMedlem sedan juni 200032 969 inlägg Enligt order by sorterar du på KlisterRubrik, så det är inte så knepigt att det blir galet då. ;)
Ujdå! Men jag fattar ändå inte hur jag ska göra får att få det rätt.
Är det bara att byta plats på nåt eller?
@ndersMedlem sedan juni 200032 969 inlägg Det enklaste är nog att ändra i ORDER BY, så att det istället för att sortera på det femte 'fältet' i select-listan, sorterar på det sjätte. Du har ju lagt in ett till fält i select-listan, så ordningsnumren är inte samma.
Okej, då var det avklarat :)
Tack så mycket för hjälpen @nders!
Nu har det dykt upp ännu ett problem med den här SQL-satsen :) Hurra!
SQL = "select f1.FID, f1.Namn, f1.Rubrik, f1.Inlagg, f1.KlisterRubrik, " & _
" max(iif(f2.Datum is null,f1.datum,f2.datum)) " & _
" from forum f1 left outer join forum f2 " & _
" on f1.fid = f2.svar " & _
" where f1.svar = 0 " & _
" group by f1.FID, f1.Namn, f1.Rubrik, f1.Inlagg, f1.KlisterRubrik " & _
" order by 6 desc"
Hur skall koden se ut om jag bara vill skriva ut de trådar som har värde 0 i fältet Klistrad?
Som ni kanske märker fattar jag verkligen noll av den här SQL koden, så jag skulle bli mycket tacksam om nån vänlig skäl skulle vilja hjälpa mig :)
@ndersMedlem sedan juni 200032 969 inlägg Det är bara att lägga till villkoret i WHERE.
SQL = "select f1.FID, f1.Namn, f1.Rubrik, f1.Inlagg, f1.KlisterRubrik, " & _
" max(iif(f2.Datum is null,f1.datum,f2.datum)) " & _
" from forum f1 left outer join forum f2 " & _
" on f1.fid = f2.svar " & _
" where f1.svar = 0 " & _
" and f1.Klistrad = 0" & _
" group by f1.FID, f1.Namn, f1.Rubrik, f1.Inlagg, f1.KlisterRubrik " & _
" order by 6 desc"