webForumDet fria alternativet

Fel i sats

21 svar · 435 visningar · startad av magnusfernstrom

magnusfernstromMedlem sedan mars 20033 686 inlägg
#1
<%
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

magnusfernstromMedlem sedan mars 20033 686 inlägg
#2

Jag är förvånad att ingen svarar, kan ingen detta? :(

@ndersMedlem sedan juni 200032 969 inlägg
#3

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

magnusfernstromMedlem sedan mars 20033 686 inlägg
#4

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
#5

Byta Connectionstring

db.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("users.mdb")
magnusfernstromMedlem sedan mars 20033 686 inlägg
#6

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
#7

Testa att skriva ut SQL-satsen innan den körs.

LarsGMedlem sedan dec. 200012 464 inlägg
#8

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?

magnusfernstromMedlem sedan mars 20033 686 inlägg
#9

Vimp: Hur gör jag detta?

@ndersMedlem sedan juni 200032 969 inlägg
#10
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.

magnusfernstromMedlem sedan mars 20033 686 inlägg
#11

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
#12

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
#13

Att reparera databas

Verktyg -> Databasverktyg -> Komprimera och reparera databas... :)

magnusfernstromMedlem sedan mars 20033 686 inlägg
#14

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
#15

Enligt order by sorterar du på KlisterRubrik, så det är inte så knepigt att det blir galet då. ;)

magnusfernstromMedlem sedan mars 20033 686 inlägg
#16

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
#17

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.

magnusfernstromMedlem sedan mars 20033 686 inlägg
#18

Okej, då var det avklarat :)
Tack så mycket för hjälpen @nders!

magnusfernstromMedlem sedan mars 20033 686 inlägg
#19

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
#20

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"
145 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
143 ms — hämta tråd, inlägg och bilagor (db)