Avatar billede axkris Nybegynder
12. august 2005 - 17:02 Der er 18 kommentarer og
1 løsning

'inStr' is not a recognized function name

Hej alle

Åh hvor ville jeg gerne kunne klikke lidt i nogle record-værdier (url'er), før der bliver sorteret via "order by", men "inStr" er desværre ikke noget, som findes i SQL'en eller hva? Det hedder måske noget andet? Eller findes der en alternativ løsning?

strSQL = "SELECT DISTINCT REPLACE(REPLACE(left(URL, inStr(URL, '/') - 1), 'http://', ''), 'www.', '') AS URL FROM PLUSPROFIL_ANNONCE WHERE USEDPOINTS < ORDERPOINTS AND (URL <> '' OR URL <> NULL) ORDER BY URL"

Det handler blot om at få nogle url'er ud, som er blevet til - f.eks.:

minhjemmeside.dk (førhen: "http://www.minhjemmeside.dk/minside.htm")
    eller
minhjemmeside2.dk (hørhen: "http://minhjemmeside2.dk")

Selvfølgelig kan jeg gøre det i asp'en, men det vil jeg helst undgå.
Avatar billede axkris Nybegynder
12. august 2005 - 17:13 #1
Når faldt "CHARINDEX('/', URL)" som jeg bare skal bruge i stedet for "inStr", men nu - hvor det virker - så klipper den url'en helt ned, fordi der jo også findes et /-tegn i "http://". Kan nogle hjælpe?
Avatar billede arne_v Ekspert
12. august 2005 - 17:13 #2
INSTR er Access specifik

prøv med CHARINDEX
Avatar billede arne_v Ekspert
12. august 2005 - 17:16 #3
kan du ikke bare søge fra position 8 af ?
Avatar billede arne_v Ekspert
12. august 2005 - 17:16 #4
via SUBSTRING
Avatar billede axkris Nybegynder
12. august 2005 - 17:18 #5
Sminder du ikke lige et en kode? kan ikke lige tænke mig til det.
Avatar billede axkris Nybegynder
12. august 2005 - 17:18 #6
Sminder = smider
Avatar billede arne_v Ekspert
12. august 2005 - 17:21 #7
CHARINDEX('/', URL)"

->

CHARINDEX('/', 7 + SUBSTRING(URL, 8, LEN(URL) - 1))
Avatar billede arne_v Ekspert
12. august 2005 - 17:22 #8
eller måske for at håndtere ingen trailing slash

CHARINDEX('/', 7 + SUBSTRING(URL + '/', 8, LEN(URL) - 6))
Avatar billede arne_v Ekspert
12. august 2005 - 17:22 #9
og det var selvfølgelig -7 i 17:21:21
Avatar billede axkris Nybegynder
12. august 2005 - 17:32 #10
Der er trailing slash i nogle tilfælde men ikke alle, desværre giver den:

Syntax error converting the nvarchar value 'www.xxxxxxxxxx.dk/kursusinfo.htm/' to a column of data type int.

SELECT DISTINCT REPLACE(REPLACE(LEFT(URL, CHARINDEX('/', 7 + SUBSTRING(URL + '/', 8, LEN(URL) - 6)) - 1), 'http://', ''), 'www.', '') AS URL FROM PLUSPROFIL_ANNONCE WHERE USEDPOINTS < ORDERPOINTS AND (URL <> '' OR URL <> NULL) ORDER BY URL
Avatar billede arne_v Ekspert
12. august 2005 - 17:39 #11
prøv lige at start med at checke:

SELECT URL,CHARINDEX('/', 7 + SUBSTRING(URL + '/', 8, LEN(URL) - 6)) FROM tabelnavn

og se om det virker

og så byg op derfra
Avatar billede arne_v Ekspert
12. august 2005 - 17:39 #12
hov

CHARINDEX('/', 7 + SUBSTRING(URL + '/', 8, LEN(URL) - 6))

skal være

7 + CHARINDEX('/',  SUBSTRING(URL + '/', 8, LEN(URL) - 6))
Avatar billede arne_v Ekspert
12. august 2005 - 17:40 #13
sorry
Avatar billede axkris Nybegynder
12. august 2005 - 17:51 #14
Mange tak - det virker :-) tryk svar :)
Avatar billede arne_v Ekspert
12. august 2005 - 18:01 #15
svar
Avatar billede axkris Nybegynder
12. august 2005 - 18:04 #16
Men kan der ikke være nogle tilfælde, hvor sql-koden vil fejle, altså hvis en url er invalid på en bestemt måde? Bare så hjemmesiden ikke går ned, hvis en indtaster en forkert url.
Avatar billede arne_v Ekspert
12. august 2005 - 18:18 #17
URL'er på 5 tegn eller færre
Avatar billede arne_v Ekspert
12. august 2005 - 18:19 #18
PS: Hvorfor laver du ikke den slags i Java/C#/VBScript/C++/whatever ?
Avatar billede axkris Nybegynder
12. august 2005 - 23:32 #19
Jeg vil helst undgå af bruge asp... men jeg indsatte bare en len(url) > 5 i where-delen, så nu kører det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester