webForumDet fria alternativet

Where fråga med funktion

Databaser & SQLur Databashanterare & SQL

4 svar · 161 visningar · startad av Calevan

Medlem sedan maj 20031 173 inlägg
Frågan#1

hej!

Jag vill plocka ut de poster i min databas som har rätt år (funkar bra) och där vilkoret i funktionen "kollabehorighet" är uppfyllt, dvs svaret blir true. Som indata till funktionen kollabehorighet har jag en session och så vill jag skicka med värdet för behörigheten som står i databasen. Så här tänkte jag först:

  SQL = "SELECT id, behorighet, titel, datum, antal, katalog, undertitel FROM kategori WHERE ar=" & ar & " AND kollabehorighet(Session('UserId'),behorighet) = 'TRUE') ORDER BY katalog ASC"

Det funkar ju ingen bra alls, går det att göra så här? hur gör man? skapar först ett Recordsett och sen strippar det?

tacksam för svar!

Medlem sedan juni 20034 013 inlägg
#2

I och med att du har skrivit SQL = " i början så antar jag att detta inte är SQL utan istället är frågan om något webbserverbaserat skriptspråk. Av ditt sätt att försöka komma åt sessionsvariablerna gissar jag att det är asp.

Är kollabehorighet en funktion du har i SQL eller i asp? Ifall det är en SQL-funktion behöver du bara skriva ut Session("UserId") istället:

AND kollabehorighet(" & Session('UserId') & ",behorighet) = 'TRUE')

Ifall det är en asp-funktion tycker jag du ska låta databasen kolla behörigheten istället.

Vad gör funktionen kollabehorighet?

Medlem sedan maj 20031 173 inlägg
#3

eh... du har rätt. visst är det asp jag sysslar med (ialla fall det jag försöker göra) ska jag fråga i något annat forum då?

kollabehorighet är en ganska knepig funktion som behöver veta värdet i Session("UserId") och vilken behörighet dsom den aktuella kategorin har, dvs vilket värde som ligger lagrat i databasen under behorighet. Då spottar funktionen ut True om kategorin ska visas och False om den inte ska visas.

så min fråga är om jag kan kolla om behörigheten stämmer redan när jag skapar recordsettet eller om jag måste göra det efteråt. Just nu tar jag med allt och sen har jag en ifsatts som kollar om behörigheten är rätt...

Medlem sedan mars 20025 907 inlägg
#4

Det är möjligt att jag missuppfattat det hela totalt, men:

SQL = "SELECT id, behorighet, titel, datum, antal, katalog, undertitel "&_
"FROM kategori "&_
"WHERE ar=" & ar " AND " & kollabehorighet(Session('UserId'),behorighet) & "  = 'TRUE' "&_
"ORDER BY katalog ASC"

Koden ovan förutsätter att den dynamiska kolumnen ovan är av text-typ. Är den av sant/falsk-typ så ska du plocka bort '' runt true.

Medlem sedan maj 20031 173 inlägg
#5

Problemet är ju att indata till kollabehorighet funktionen är värden jag vill plocka ut ur databasen. som du ser står behorighet på två ställen, och det är ju ingen variabel i vanlig bemärkelse så jag får ju felmedelande:

Wrong number of arguments or invalid property assignment: 'behorighet'

i läge två. Hur löser jag detta?

(tror att du har missat ett & efter ar och så ska ' runt UserID vara ")

128 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)