/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Kun x antal tegn
Fra : Lars Klingenberg


Dato : 13-01-02 09:42

Hi,
Er der en metode til at hente et specifikt antal tegn fra et tekstfelt i en
database? I en speciel listning af de records der er i databasen har jeg kun
brug for at vise fx 20 karakterer fra et tekstfelt uanset hvor mange
karakterer der er. Efter 20 karakter skal den bare stoppe og skrive fx. ...
--
Med venlig hilsen
Lars Klingenberg



 
 
Jesper Nielsen (13-01-2002)
Kommentar
Fra : Jesper Nielsen


Dato : 13-01-02 09:57

> Er der en metode til at hente et specifikt antal tegn fra et tekstfelt i
en
> database? I en speciel listning af de records der er i databasen har jeg
kun
> brug for at vise fx 20 karakterer fra et tekstfelt uanset hvor mange
> karakterer der er. Efter 20 karakter skal den bare stoppe og skrive fx.
....

Dette burde virke (har ikke testet):

<%
Dim Qry, Conn, SQL
Dim AddVal

AddVal = ""

Set Qry = Conn.Execute(SQL)

If Len(Qry("Feltnavn")) > 20 Then AddVal = " ..."

Response.Write("Feltværdi: " & Left(Qry("Feltnavn"),20) & AddVal & "<br>")
%>

--
Mvh. Jesper



Lars Klingenberg (14-01-2002)
Kommentar
Fra : Lars Klingenberg


Dato : 14-01-02 12:27

> Dette burde virke (har ikke testet):
Works like a charm! Thanx!
/Lars



Jesper Stocholm (14-01-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 14-01-02 12:46

Lars Klingenberg wrote in news:3c42c0cd$0$62871
$edfadb0f@dspool01.news.tele.dk:

>> Dette burde virke (har ikke testet):
> Works like a charm! Thanx!

principielt bør du gøre det som Jakob foreslår. Hvis dit felt indeholder
fx 100+ tegn, så henter du dem allesammen ud - for kun at udskrive de 20
af dem, og det er i bedste fald noget pjat. Hvis det er et MEMO-felt du
arbejder med, så kan spildet blive markant større.

For nogle dage/uger siden var der en, der spurgte om, hvordan man
udskriver længden af indholdet i et felt i en database - og her er det
endnu mere hen i vejret at hente alle tegn - og så derefter udregne
antallet af dem.

Jeg bruger altid hovedreglen:
"hvis databasen kan gøre det - så lad den dog ..."

At lade databasen ordne evt manipulation af data i et recordset vil (som
oftest) være mere optimalt end at lave noget script (=langsomt) til at
gøre arbejdet, når data er kommet fra databasen til webserveren.

Hvilken database(fil) er det du arbejder med ?

--
Jesper Stocholm - http://stocholm.dk

Synes du også, at Britney trods alt er meget lækker - men dog
på grænsen til det kvalmende ? http://stocholm.dk/britney.txt

Jesper Stocholm (14-01-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 14-01-02 12:53

Jesper Stocholm wrote in
news:Xns919681C9817FDspamstocholmdk@192.38.208.81:

> Lars Klingenberg wrote in news:3c42c0cd$0$62871
> $edfadb0f@dspool01.news.tele.dk:
>
>>> Dette burde virke (har ikke testet):
>> Works like a charm! Thanx!
>
> principielt bør du gøre det som Jakob foreslår. Hvis dit felt
> indeholder fx 100+ tegn, så henter du dem allesammen ud - for kun at
> udskrive de 20 af dem, og det er i bedste fald noget pjat. Hvis det er
> et MEMO-felt du arbejder med, så kan spildet blive markant større.
>
> For nogle dage/uger siden var der en, der spurgte om, hvordan man
> udskriver længden af indholdet i et felt i en database - og her er det
> endnu mere hen i vejret at hente alle tegn - og så derefter udregne
> antallet af dem.
>
> Jeg bruger altid hovedreglen:
> "hvis databasen kan gøre det - så lad den dog ..."
>
> At lade databasen ordne evt manipulation af data i et recordset vil
> (som oftest) være mere optimalt end at lave noget script (=langsomt)
> til at gøre arbejdet, når data er kommet fra databasen til
> webserveren.
>
> Hvilken database(fil) er det du arbejder med ?
>

I Access, MS SQL og mySQL gøres det således:

SELECT LEFT(Field,length) As cutField FROM Table1

.... dvs i dette tilfælde

SELECT LEFT(Feltnavn,20) As klipText FROM DinTabel

--
Jesper Stocholm - http://stocholm.dk

Synes du også, at Britney trods alt er meget lækker - men dog
på grænsen til det kvalmende ? http://stocholm.dk/britney.txt

Lars Klingenberg (14-01-2002)
Kommentar
Fra : Lars Klingenberg


Dato : 14-01-02 13:54

> > principielt bør du gøre det som Jakob foreslår.
Det har du ret i. Jeg kunne dog ikke få din metode til at virke, men Jacobs
virkede fint:
SELECT (Convert(varchar(20),Felt) + '...') AS FeltCut FROM MinTabel

....og den bruger jeg nu. I øvrigt et godt princip med at lave databasen gøre
arbejdet - specielt med en hurtig og stabil database som SQL Server (i
modsætning til hvad jeg brugte tidligere: Access).

> > Hvilken database(fil) er det du arbejder med ?
MS SQL Server 2000

> SELECT LEFT(Field,length) As cutField FROM Table1
Som sagt - det fungerede ikke så godt...

/Lars



Jesper Stocholm (14-01-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 14-01-02 14:03

Lars Klingenberg wrote in
news:3c42d51a$0$80473$edfadb0f@dspool01.news.tele.dk:

>> > principielt bør du gøre det som Jakob foreslår.
>
>> > Hvilken database(fil) er det du arbejder med ?
> MS SQL Server 2000
>
>> SELECT LEFT(Field,length) As cutField FROM Table1
> Som sagt - det fungerede ikke så godt...
>

kan du uddybe, hvad fejlen var/er ? Jeg testede det inden jeg sendte
indlægget, og der virkede det fint ?

--
Jesper Stocholm - http://stocholm.dk

Synes du også, at Britney trods alt er meget lækker - men dog
på grænsen til det kvalmende ? http://stocholm.dk/britney.txt

Jakob Andersen (14-01-2002)
Kommentar
Fra : Jakob Andersen


Dato : 14-01-02 21:27

"Jesper Stocholm" <spam200201@stocholm.dk> wrote in message
news:Xns91968ED7B3437spamstocholmdk@192.38.208.81...
> kan du uddybe, hvad fejlen var/er ? Jeg testede det inden jeg sendte
> indlægget, og der virkede det fint ?
´
LEFT functionen virker ikke på f.eks. text felter i MS SQL, derfor skal du
bruge CAST eller CONVERT og lave strengen om til en varchar i den ønskede
længde.


--
Jakob Andersen



Jesper Stocholm (14-01-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 14-01-02 21:33

Jakob Andersen wrote in news:a1vesl$8n0$1@news.cybercity.dk:

> "Jesper Stocholm" <spam200201@stocholm.dk> wrote in message
> news:Xns91968ED7B3437spamstocholmdk@192.38.208.81...
>> kan du uddybe, hvad fejlen var/er ? Jeg testede det inden jeg sendte
>> indlægget, og der virkede det fint ?
> ´
> LEFT functionen virker ikke på f.eks. text felter i MS SQL, derfor
> skal du bruge CAST eller CONVERT og lave strengen om til en varchar i
> den ønskede længde.
>

OK ... jeg skal indrømme, at jeg ikke testede det på et TEXT-felt :)

--
Jesper Stocholm - http://stocholm.dk

Synes du også, at Britney trods alt er meget lækker - men dog
på grænsen til det kvalmende ? http://stocholm.dk/britney.txt

Jakob Andersen (14-01-2002)
Kommentar
Fra : Jakob Andersen


Dato : 14-01-02 22:46

"Jesper Stocholm" <spam200201@stocholm.dk> wrote in message
news:Xns9196DB35E30spamstocholmdk@192.38.208.81...
> OK ... jeg skal indrømme, at jeg ikke testede det på et TEXT-felt :)

Det er helt ok

Jeg har på fornemmelsen du er manden der kan hjælpe mig.. Jeg har før set
dig lege med XML og XSLT. Kan du måske lokkes til at kigge på:
<http://www.advice.dk/jakob/xmlpost/>

Det går galt for mig med danske tegn postet fra mit XML/XSLT dokument.

--
Jakob Andersen



Jesper Stocholm (16-01-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 16-01-02 11:55

Jakob Andersen wrote in news:a1vjhf$mp9$1@news.cybercity.dk:

> "Jesper Stocholm" <spam200201@stocholm.dk> wrote in message
> news:Xns9196DB35E30spamstocholmdk@192.38.208.81...
>> OK ... jeg skal indrømme, at jeg ikke testede det på et TEXT-felt :)
>
> Det er helt ok
>
> Jeg har på fornemmelsen du er manden der kan hjælpe mig.. Jeg har før set
> dig lege med XML og XSLT. Kan du måske lokkes til at kigge på:
> <http://www.advice.dk/jakob/xmlpost/>
>
> Det går galt for mig med danske tegn postet fra mit XML/XSLT dokument.
>

så vidt jeg kan se, så laver du klientside XLST i IE, ikke ? Det er
desværre alt for længe siden jeg har arbejdet med dette, ås jeg mangler de
værktøjer jeg brugte dengang - bla HTML-source viewer til IE, der åbenbart
ikke kan fås til IE6.

Jeg har prøvet at poste noget data på siden ... men det ser ikke ud til at
virke ... eller ?

Umiddelbart ser det ud til, at den poster forkerte data i URL. Fx giver et
'æ' '%C3%A6' ... hvor det burde give '%E6'. Jeg ved ikke, om det kan hjælpe
.... men det er muligt i dit stylesheet at angive et specifikt output - der
her vel skal være HTML ... Der står noget om det på
http://www.w3.org/TR/xslt#output, men jeg er usikker på, om det kan hjælpe
dig.

:)

--
Jesper Stocholm - http://stocholm.dk

Synes du også, at Britney trods alt er meget lækker - men dog
på grænsen til det kvalmende ? http://stocholm.dk/britney.txt

Jakob Andersen (13-01-2002)
Kommentar
Fra : Jakob Andersen


Dato : 13-01-02 13:21

"Lars Klingenberg" <lklingenberg@lknet.dk> wrote in message
news:3c414878$0$35529$edfadb0f@dspool01.news.tele.dk...
> Er der en metode til at hente et specifikt antal tegn fra et tekstfelt i
en
> database? I en speciel listning af de records der er i databasen har jeg
kun
> brug for at vise fx 20 karakterer fra et tekstfelt uanset hvor mange
> karakterer der er. Efter 20 karakter skal den bare stoppe og skrive fx.
....

Hvilken database, i MS SQL kan man fx. gøre sådan her:

SELECT (Convert(varchar(10),Feltnavn) + '...') FROM tabelnavn

--
Jakob Andersen



Christian M. Nielsen (13-01-2002)
Kommentar
Fra : Christian M. Nielsen


Dato : 13-01-02 18:07

Jakob Andersen" <jakob@effectus.dk> wrote in message
news:a1ru21$17b7$1@news.cybercity.dk...

> SELECT (Convert(varchar(10),Feltnavn) + '...') FROM tabelnavn

eller

<%=Left(oRs("feltnavn"),20)%>

hvor 20 angiver antal karaktere der skal hentes.

--

--

Mvh / Regards

-=< Christian >=-
ICQ: 25308942
http://www.cmnielsen.dk



Jakob Andersen (13-01-2002)
Kommentar
Fra : Jakob Andersen


Dato : 13-01-02 18:29

"Christian M. Nielsen" <christian@cmnielsen.dk> wrote in message
news:3c41bf1e$0$16875$ba624c82@nntp02.dk.telia.net...
> eller
>
> <%=Left(oRs("feltnavn"),20)%>

Det er jo latterligt at hive alle data fra feltet ud og derefter bruge
VBScript til at redigere strengen, min løsning gør det i SQLen hvilket er
optimalt da jeg ikke danser rundt med unødig data

--
Jakob Andersen



Knud Westdorf (13-01-2002)
Kommentar
Fra : Knud Westdorf


Dato : 13-01-02 17:57

"Lars Klingenberg" <lklingenberg@lknet.dk> wrote in message
news:3c414878$0$35529$edfadb0f@dspool01.news.tele.dk...
> Hi,
> Er der en metode til at hente et specifikt antal tegn fra et tekstfelt i
en
> database? I en speciel listning af de records der er i databasen har jeg
kun
> brug for at vise fx 20 karakterer fra et tekstfelt uanset hvor mange
> karakterer der er. Efter 20 karakter skal den bare stoppe og skrive fx.
....
> --

Jeg kunne forestille mig noget i denne stil:

SELECT IIf(Len(felt1)>20,felt1 & "...",felt1) AS felt1start FROM tabel

I fx. MS SQL.

--
Med venlig hilsen
Knud Westdorf
knud@westdorf.dk
www.jirty.dk



Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408852
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste