webForumDet fria alternativet

Typblandningsfel

ASP

22 svar · 480 visningar · startad av SoulGod

Medlem sedan aug. 20051 200 inlägg
Frågan#1

Försöker använda denna kod (se nedan), men får det ej att fungera.

[KOD]
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../db/databas.mdb")
%>
<%
Set RecSet = Conn.Execute("Select * From tabell Where rubrik="& Request.Querystring("rubrik"))
%>
[KOD]

Får felmeddelandet:
""Feltyp:
Microsoft JET Database Engine (0x80040E07)
Typblandningsfel i villkorsuttryck.
/vimmerby/admin/diverse/visa.asp, line 6""

Vad är fel? Har prövat med diverse olika lösningar ,men får det ej att fungera.
Mvh Martin

Medlem sedan maj 20018 027 inlägg
#2

Du har möjligtvis inte redan prövat att omge strängen (vilket jag förmodar att Request.Querystring("rubrik")) med apostrofer?

Medlem sedan juli 20033 147 inlägg
#3

Precis som UlfT skriver, saknas det en apostrof.

Set RecSet = Conn.Execute("Select * From tabell Where rubrik="& Request.Querystring("rubrik") &"")
Medlem sedan juli 20011 084 inlägg
#4

Melea skrev:

Precis som UlfT skriver, saknas det en apostrof.

Det är inte säkert, om rubrik är av typen tal behövs inga apostrof. Om den är av text måste man kan ha en apostrof '

Set RecSet = Conn.Execute("Select * From tabell Where rubrik=[COLOR=Red]'[/COLOR]"& Request.Querystring("rubrik") &"[COLOR=Red]'[/COLOR]")
Medlem sedan maj 20018 027 inlägg
#5

mozilla skrev:

Det är inte säkert, om rubrik är av typen tal behövs inga apostrof.

Visst. Men om det är av typen tal, är namnsättningen ytterst märklig.

Medlem sedan juni 200032 967 inlägg
#6

Melea skrev:

Precis som UlfT skriver, saknas det en apostrof.

Men, du har ju inte lagt till några apostrofer, du har ju bara konkatenerat in en tom sträng (dvs ingenting) på slutet! Vad är meningen med det???

Medlem sedan mars 20041 505 inlägg
#7

Varför har ASP-programmerare sådan nojja att alltid använda massa onödiga "" överallt?

Medlem sedan juli 20033 147 inlägg
#8

@nders skrev:

Melea skrev:

Precis som UlfT skriver, saknas det en apostrof.

Men, du har ju inte lagt till några apostrofer, du har ju bara konkatenerat in en tom sträng (dvs ingenting) på slutet! Vad är meningen med det???

Hehe, gav min vilda chansning, eftersom jag inte har programmerat med ASP på mer än 5 år. :)

Medlem sedan juni 200032 967 inlägg
#9

Hehe, gav min vilda chansning, eftersom jag inte har programmerat med ASP på mer än 5 år.

Ok, men apostroferna har ju ingenting med asp att göra.

- - - - - -

Varför har ASP-programmerare sådan nojja att alltid använda massa onödiga "" överallt?

Jag vet inte. Jag antar att det beror på att nuförtiden försöker folk inte lära sig någonging, utan de vill bara få funktionaliteten klar. Då spelar det ingen roll hur kass allt ser ut, och hur mycket onödigt som görs. Copy & Paste används alldeles för mycket.

Medlem sedan maj 20018 027 inlägg
#10

Egentligen är det ju inga konstigheter vi talar om. Det är bara att utgå från hur en sql-fråga faktiskt ska se ut. Sedan försöker man skapa den frågan i det språk man nu använder för att programmera. Då är det egentligen glasklart var apostroferna ska in, och var det inte behövs några citationstecken. Asp har för övrigt inget med detta problem att göra. Men tydligen verkar folk på något förunderligt vis blanda ihop asp och sql mest hela tiden.

Medlem sedan aug. 20051 200 inlägg
#11

Länkning

Hur gör jag då för att länka till den?
För den koden jag hade där, används i visa.asp

I ref.asp , där ligger det flera länkar, och jag vill att när man klickar på en titel, så skall visa.asp (via koden jag tidigare använt) öppna den titeln & dess innehåll.

<a href="visa.asp?rubrik=***"><%=RecSet("rubrik")%></a>

Typ sådär, men blir det vid *** ?
Mvh

Medlem sedan apr. 20031 660 inlägg
#12

HEJ!

Länka inte med rubriken i querystringen, onödigt, och krånglar till det. Använd siffror istället, tex det postnummer som nyheten/artikeln etc har.

<a href="visa.asp?id=<%=RS("id")%>"><%=RecSet("rubrik")%></a>

Sedan hämtar du hela inlägget med request.querystring("id")

Som bonus slipper du sätta in fler fnuttar i din sql, byt endast ut rubrik till id, eller vad fältet heter.

Medlem sedan juli 20041 183 inlägg
#13

J.N. skrev:

HEJ!

Länka inte med rubriken i querystringen, onödigt, och krånglar till det. Använd siffror istället, tex det postnummer som nyheten/artikeln etc har.

<a href="visa.asp?id=<%=RS("id")%>"><%=RecSet("rubrik")%></a>

Sedan hämtar du hela inlägget med request.querystring("id")

Som bonus slipper du sätta in fler fnuttar i din sql, byt endast ut rubrik till id, eller vad fältet heter.

Detta fungerar bra om man lärt sig bygga databas-tabeller ordentligt. Så, hoppas han har en ID-kolumn??

Medlem sedan apr. 20031 660 inlägg
#14

HEJ!

lilja skrev:

Detta fungerar bra om man lärt sig bygga databas-tabeller ordentligt. Så, hoppas han har en ID-kolumn??

Jag också!

Annars är det enkelt att lägga till en sådan i efterhand.

Medlem sedan juli 20041 183 inlägg
#15

J.N. skrev:

HEJ!Jag också!

Annars är det enkelt att lägga till en sådan i efterhand.

Det är korrekt men det är också sådana där saker som gör att det tar tid att utveckla en webbsida. Man gör något halvtaskigt från början och sen vill man förbättra det och tvingas göra om en massa saker från grunden...

Har själv finfina erfarenheter av det ;)

Medlem sedan apr. 20031 660 inlägg
#16

HEJ!

lilja skrev:

Det är korrekt men det är också sådana där saker som gör att det tar tid att utveckla en webbsida. Man gör något halvtaskigt från början och sen vill man förbättra det och tvingas göra om en massa saker från grunden...

Har själv finfina erfarenheter av det ;)

Det kan jag garantera att alla har, det kan alltid bli bättre, oavsett vad det är!

Räknare är en sådan grundläggande sak att man inte kan missa det om man läser även den enklaste vägledning för att skapa och redigera en nyhetstabell.

Vi får avvakta SoulGods svar och hur han löst detta!

Medlem sedan aug. 20051 200 inlägg
#17

Det fungerar så långt utan problem *ler*
Tackar så mycket för hjälpen, dock.

Då man klickar på dessa länkar, och skall komma till visa.asp ,
så får jag åter igentypblandningsfel. :(

<%
Set RecSet = Conn.Execute("Select * From tabell Where id='"& Request.Querystring("id") &"'")
%>

Felet denna gång?
Åter igen tack för all hjälp, och ursäkta min inkompetens när det gäller sådant här.

Medlem sedan juni 200032 967 inlägg
#18

Fältet ID är väl av typen tal? Då ska du inte ha apostrofer runt värdet.

Medlem sedan aug. 20051 200 inlägg
#19

Ni grabbar är sjuka, jag hann knappt trycka på svara juh *skrattar*
Du menar Request.Querystring("id")
?
Hjälper inte att tabort dom.

Medlem sedan juni 200032 967 inlägg
#20

Hur ser det alltså ut när du tagit bort apostroferna?

263 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)