webForumDet fria alternativet

Staket som pajar recordset

ASP

15 svar · 245 visningar · startad av OveRRidE

Medlem sedan feb. 200112 078 inlägg
Frågan#1

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
------------------
Om hus byggdes såsom programmerare skriver program, skulle första bästa hackspett ruinera vår civilsation.

[Redigerat av OveRRidE den 12 sep 2001]

Medlem sedan juni 200032 967 inlägg
#2

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,

------------------
http://free.webforum.nu/wf/Forum1/HTML/004053.html

Medlem sedan juni 2000547 inlägg
#3

Det är inte så att art är numerisk eller? I så fall kan du skippa enkelfnuttarna.

------------------
~~~~~~~~~~~~~~~~~~~~
Silvio Fumei
silvio@fumei.net
www.fumei.net
~~~~~~~~~~~~~~~~~~~~

Medlem sedan feb. 200112 078 inlägg
#4
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 #.

------------------
Om hus byggdes såsom visssa programmerare skriver program, skulle första bästa hackspett ruinera vår civilsation.

Medlem sedan feb. 200112 078 inlägg
#5

SilvioF: Nix, den är i string-format.

------------------
Om hus byggdes såsom visssa programmerare skriver program, skulle första bästa hackspett ruinera vår civilsation.

Medlem sedan juni 200032 967 inlägg
#6

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,

------------------
http://free.webforum.nu/wf/Forum1/HTML/004053.html

Medlem sedan feb. 200112 078 inlägg
#7

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") & "' ")

------------------
Om hus byggdes såsom vissa programmerare skriver program, skulle första bästa hackspett ruinera vår civilsation.

Medlem sedan juni 200032 967 inlägg
#8

Humm?

Hur ser den färdiga html-länken ut, och sql-frågan? Blev det någon skillnad alls?

------------------
http://free.webforum.nu/wf/Forum1/HTML/004053.html

Medlem sedan feb. 200112 078 inlägg
#9
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. :q

------------------
Om hus byggdes såsom vissa programmerare skriver program, skulle första bästa hackspett ruinera vår civilsation.

Medlem sedan juni 200032 967 inlägg
#10

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... :e

------------------
http://free.webforum.nu/wf/Forum1/HTML/004053.html

Medlem sedan feb. 200112 078 inlägg
#11

Eller så slutar man sälja Hewlett Packard helt och hållet...

Vem har sagt nåt om HP överhuvudtaget? :e

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?

------------------
Om hus byggdes såsom vissa programmerare skriver program, skulle första bästa hackspett ruinera vår civilsation.

Medlem sedan juni 200032 967 inlägg
#12

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? :e

:OO ;)

------------------
http://free.webforum.nu/wf/Forum1/HTML/004053.html

Medlem sedan feb. 200112 078 inlägg
#13

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 :)

------------------
Om hus byggdes såsom vissa programmerare skriver program, skulle första bästa hackspett ruinera vår civilsation.

Medlem sedan juni 200032 967 inlägg
#14

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,

------------------
http://free.webforum.nu/wf/Forum1/HTML/004053.html

Medlem sedan feb. 200112 078 inlägg
#15

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. ;)

------------------
Om hus byggdes såsom vissa programmerare skriver program, skulle första bästa hackspett ruinera vår civilsation.

Medlem sedan feb. 200112 078 inlägg
#16

Tack.

------------------
Om hus byggdes såsom vissa programmerare skriver program, skulle första bästa hackspett ruinera vår civilsation.

146 ms totalt · 2 externa anrop · v20260731065814-full.2ae45ccc
0 ms — hämta statistik (cache)
143 ms — hämta tråd, inlägg och bilagor (db)