webForumDet fria alternativet

Visa x antal tecken på ett värde i en databas?

ASP

8 svar · 344 visningar · startad av Sammy

Medlem sedan maj 2000202 inlägg
Frågan#1

Hur ska jag bete mig för att få fram x antal tecken ur ett värde i en databas?

testade detta men det fungerade tyvärr inte.. Är jag helt ute och snurrar?

<%= left(RStemp("datum"), 16) %>

Medlem sedan juni 200032 967 inlägg
#2

Jo, det ska fungera under förutsättning att det inte ligger ett nullvärde i kolumnen.

Gör det det, så borde det fungera att göra så här:

<%= left("" & RStemp("datum"), 16) %>

Mvh,

Medlem sedan juni 200277 inlägg
#3

Om det är ett datum du ska plocka fram så är det bättre att formatera datumet med FormatDateTime funktionen. Om du vill kapa den och ta bort den högra delen ser din syntax helt rätt ut. En variant är att använda Mid istället.

<%= mid(RSTemp("datum"), 1, 16) %>

det borde göra samma sak som du gör nu

Medlem sedan maj 2000202 inlägg
#4

Fungerade kanon ;)

Om jag sedan har en funktion som jag vill använda på samma sätt hur fungerar det då?

<%= funktion("" & RStemp("ip")) %>

Försökte med detta men det verkade ej fungera? Serverns väntetid tog slut?

Medlem sedan dec. 200012 464 inlägg
#5

Syntaxen ser rätt ut. Då beror det på vad som händer i funktionen.

Medlem sedan maj 2000202 inlägg
#6

Om det är ett datum du ska plocka fram så är det bättre att formatera datumet med FormatDateTime funktionen. Om du vill kapa den och ta bort den högra delen ser din syntax helt rätt ut. En variant är att använda Mid istället.

Det kan nog stämma men jag vill i det här fallet bara visa de första 16 tecknen och ha det rätta lagrat i databasen om man säger så ;)

Frågan är dock vilken variant man bör använda sig av? ;) Är det bara en smaksak som med så mycket annat här i livet ;)

Medlem sedan maj 2000202 inlägg
#7

Syntaxen ser rätt ut. Då beror det på vad som händer i funktionen

De tre sista siffrorna ersätts med xxx i ett ip-nummer.

Hittade scriptet på https://www.fatmilk.nu och tyckte jag kunde få användning av det ;)

Här är det:

<%
'skrivet av matthias hellebjörk 2002
'contact : icq: 47933751, irc: od`kasse @ quakenet
'fritt fram att använda så länge dessa rader står kvar.

function fixaip(uin)
dim nummer,punkt,i
punkt = "0"
i = "1"
nummer = uin
do until punkt = "3"
if mid(nummer,i,1) = "." then
punkt = punkt + 1
end if
nyttip = nyttip & Mid(nummer,i,1)
i = i + 1
if punkt = "3" then
response.write(nyttip & "XXX")
end if
loop
end function
%>

Givetvis använde jag mig då av:

<%= fixaip("" & RStemp("ip")) %>

Medlem sedan dec. 200012 464 inlägg
#8

Den skulle jag nog inte använda. Vad händer om man skickar in en sträng som inte innehåller 3 punkter?

function fixaip(uin) 
     dim punkt,i 
     punkt = 0  
     for i = 1 to len(uin)
         if  mid(uin,i,1) = "." then 
             punkt = punkt + 1
             if punkt = 3 then fixaip = mid(uin,1,i) & "XXX"  : exit function
         end if
     next
     fixaip = uin
end function

Sen så skall man aldrig använda response.write i en funktion.

Medlem sedan maj 2000202 inlägg
#9

Jag säger bara... "TUR ATT DET FINNS PROFFS!!!" ;)

Det var just därför skriptet inte fungerade antar jag? Några av mina värden (ip) är tomma just nu eftersom jag skapade detta värde/denna kolumn i efterhand.

Nu fungerade det utmärkt.. Tack ska ni ha för alla era svar!

267 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)