Hur ser SQL-frågan ut i färdigt skick, och får du något felmeddelande?
Skriv alltså ut frågan med response.write innan execute.
Mvh,
15 svar · 273 visningar · startad av OveRRidE
Jag skickar en querystring vars värde innehåller tecknet #.
Problemet är att när jag sen skall baka in det i min SQL-sats, så funkar det inget bra..
Set RecSet = Conn.Execute("SELECT * FROM pris WHERE art = '" & request.querystring("artnr") & "' ")
Jag kan inte förstå vad som är fel, eftersom jag innesluter värdet i SQL-satsen, med '.
red: stavfel
Hur ser SQL-frågan ut i färdigt skick, och får du något felmeddelande?
Skriv alltså ut frågan med response.write innan execute.
Mvh,
Det är inte så att art är numerisk eller? I så fall kan du skippa enkelfnuttarna.
SELECT * FROM priswebsverige WHERE art = 'TEST'
så ser SQL-frågan ut, men nu syns ju inte #. TEST skall egentligen vara TEST#ABF... men den klipper vid #.
SilvioF: Nix, den är i string-format.
Det beror på att # används i länkar. Det är alltså inte rakt av giltigt i en querystring, och det är där problemet ligger.
Du måste använda dig av Server.URLEncode() när du skapar länken.
<a href="sidan.asp?str=<%=Server.URLEncode(variabel)%>">blah!</a>
Mvh,
Funkar inte ändå... jag får samma fel..
Href:
.write "<a href=javascript:popUp('addKatJoin.asp?artnr=" & Server.URLEncode(recset("art")) & "')><img src=../gfx/check.gif border=0 alt='Denna artikel är inte kategoriserad. Klicka för att välja kategori till artikeln nu.'></a>"
SQL-state:
Set RecSet = Conn.Execute("SELECT * FROM priswebsverige WHERE art = '" & request.querystring("artnr") & "' ")
SELECT * FROM priswebsverige WHERE art = 'TEST'
<a href=javascript:popUp('addKatJoin.asp?artnr=TEST%23ABS')>BLA</a>
Det kan inte ha att göra med att jag kör med .write eller så.. sen har jag ju fnuttar runt, pga javascriptet med.
Hmm. Det ser rätt ut, tycker jag.
Man kan ju alltid använda replace för att göra sig av med # innan man skapar länken, och sedan replace:a tillbaka.
Eller så slutar man sälja Hewlett Packard helt och hållet...
Eller så slutar man sälja Hewlett Packard helt och hållet...
Vem har sagt nåt om HP överhuvudtaget?
Man kan ju alltid använda replace för att göra sig av med # innan man skapar länken, och sedan replace:a tillbaka.
Hrmm skall man pilla ihop en liten funk som typ ersätter # med nåt annat, och sedan sätter tillbaks det igen vid parsing i SQL-statementet eller?
Hrmm skall man pilla ihop en liten funk som typ ersätter # med nåt annat, och sedan sätter tillbaks det igen vid parsing i SQL-statementet eller?
Det låter som en alldeles ypperlig idé.
Vem har sagt nåt om HP överhuvudtaget?
ok jag har löst det, tack var @nders hjälp..
Först byter vi ut # mot ___...
Function artnr_funk()
artnr_funk = Replace(recset("art"),"#","___")
End Function
och placerar det i länken...
<a href="sida.asp?artnr=<%=artnr_funk()%>">Klicka mig</a>
Och på nästa sida, ersätter vi tillbaks det...
Function artnr_funk_back()
artnr_funk_back = Replace(request.querystring("artnr"),"___","#")
End function
och flyttar in i SQL-strängen..
Set SQLstr = "SELECT * FROM priswebsverige WHERE art = '" & artnr_funk_back() & "' "
Kanske lite väl överbeskrivet, men men
Ett litet förslag:
Det är bättre att du gör funktionen på så sätt att du kastar ett artikelnummer på den och den kastar tillbaka ett replaceat artikelnummer.
Function artnr_funk(artnr)
artnr_funk = Replace(artnr,"#","___")
End Function
<a href="sida.asp?artnr=<%=artnr_funk(recset("art"))%>">Klicka mig</a>
respektive:
Function artnr_funk_back(artnr)
artnr_funk_back = Replace(artnr,"___","#")
End function
SQLstr = "SELECT * FROM priswebsverige WHERE art = '" & artnr_funk_back(request.querystring("artnr")) & "' "
OBS! Du skall inte ha något Set när du skapar din SQL-fråga. Det är en vanlig sträng, och inget objekt.
Mvh,
OBS! Du skall inte ha något Set när du skapar din SQL-fråga. Det är en vanlig sträng, och inget objekt.
Oj! Skrev ur huvet lite där, detta skall ändras
Det är bättre att du gör funktionen på så sätt att du kastar ett artikelnummer på den och den kastar tillbaka ett replaceat artikelnummer.
Det var ett bra förslag, så gör vi.
Tack.