Avatar billede kkd Nybegynder
14. juni 2003 - 17:51 Der er 13 kommentarer og
1 løsning

Speciel Order-funktion

En kommando som denne, henter data fra tabellen "tabel", og sorterer efter værdierne i feltet Code. Problemet er at nogle af de indtastede værdier i feltet Code har to apostroffer (') foran sig. Hvordan får jeg scriptet til at se bort fra de apostroffer? Når den sorterer, kommer tegn som apostroffer før bogstaver.

strSQL1 = "SELECT * FROM table WHERE NameID='None' Order by Code Asc"
Set rs = Conn.Execute(strSQL1)
Avatar billede kkd Nybegynder
14. juni 2003 - 17:53 #1
Hele koden kan ses her - for at give et lidt bedre overblik. (Den fungerer som den skal, bortset fra det der med apostrofferne!

<%
strSQL1 = "SELECT * FROM tabel WHERE NameID='none' Order by Code Asc"
Set rs = Conn.Execute(strSQL1)

Do While Not rs.EOF
  Response.write rs("Code") & ";URL=http://www.minside.dk/side.asp?ID=" & rs("ID") & ";TARGET=mainFrame"

  rs.MoveNext
  if not rs.EOF then
    'Bliver ikke udskrevet ved sidste record
    Response.write "|" & vbCrLf
  end if
Loop
%>
Avatar billede kkd Nybegynder
14. juni 2003 - 17:53 #2
NameID og Code felterne er begge tekst-format.
Avatar billede kovalt Nybegynder
14. juni 2003 - 18:56 #3
Hvis det ikke er alle orderne der indeholder appostroffer så tror jeg ikke det kan lade sig gøre i ren SQL. Så skal du anvende en bobbel-sortering!

Men hvorfor er det lige at det er nødvendigt at de appostroffer er med?
Avatar billede erikjacobsen Ekspert
14. juni 2003 - 18:59 #4
Den rimeligste måde, synes jeg, er at du tilføjer yderligere et
felt. Deri indsætter du den tekst, der skal sorterets efter, som
du så laver med ASP.

  abekat bliver bare til abekat
  'hundestejler' bliver til hundestejler

Så kan bruge ORDER BY på det nye felt.
Avatar billede kkd Nybegynder
14. juni 2003 - 19:07 #5
Apostrofferne er nødvendige, da de visuelt skal gøre det ud for gåseøjne ("), og koden er integreret i et java-script som ikke vil tolerere ".

Erikjacobsen's forslag er måske den eneste mulighed!
Avatar billede a1a1 Novice
14. juni 2003 - 19:37 #6
alt efter hvilken database du bruger kan du "replace" ' med ingenting...

REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )

fx

strSQL1 = "SELECT REPLACE(feltmeddimser,'''','') FROM tabel WHERE NameID='none' Order by Code Asc"
Set rs = Conn.Execute(strSQL1)

;)
Avatar billede a1a1 Novice
14. juni 2003 - 19:39 #7
det jeg skrev er til microsoft sqlserver
Avatar billede kkd Nybegynder
15. juni 2003 - 11:30 #8
Jeg bruger følgende kode til at åbne databasen:

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/db/database.mdb")
Conn.Open DSN

så det er ikke sqlserver, vel?
Avatar billede hossein Nybegynder
15. juni 2003 - 13:36 #9
hvis teksten i feltet brgynder med to ' og ikke " så kan du bruge replace:
<%

Set Conn=Server.CreateObject("ADODB.Connection")
Set rs=Server.CreateObject("ADODB.recordset")
Conn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="&server.Mappath("streetracers.dk.mdb"))

strSQL1 = "SELECT * FROM tabel WHERE NameID='none' Order by Code Asc"
rs.Open strSQL1, conn, 1, 3

do while not rs.EOF
Response.Write replace(rs("code"),"''","")%><br>
<%
rs.MoveNext
loop%>
Avatar billede kkd Nybegynder
15. juni 2003 - 15:09 #10
Efter lidt fiks-fakserier - meget banden og svovlen - ser det ud til at virke med hosseins ide - derfor point til ham!
Avatar billede erikjacobsen Ekspert
15. juni 2003 - 18:56 #11
Hvordan får du den til at sortere korrekt (som du beskriver i spørgsmålet)
med hosseins idé ?
Avatar billede kkd Nybegynder
17. juni 2003 - 18:40 #12
Det troede jeg bare jeg havde fået den til... Jeg kiggede ikke ordentligt efter i resultatet - det virker ikke... Den skriver det på en mærkelig måde, flere gang efter hinanden. Jeg har opgivet, og benytter mig af erik's ide.
Da jeg desværre allerede har givet point, opretter jeg et nyt spørgsmål i denne katagori, så erikjacobsen kan få sine point, med titlen Point til erikjacobsen
Avatar billede hossein Nybegynder
17. juni 2003 - 19:02 #13
Hvad mener du med: "Den skriver det på en mærkelig måde, flere gang efter hinanden."?
Den kode som jeg skrev til dig, har jeg selv testet, og outputet er uden ' og sorteres faldende.
Avatar billede erikjacobsen Ekspert
17. juni 2003 - 19:59 #14
Du skal ikke oprette den slags støjende spørgsmål - jeg frafalder point,
bare du får løst dit problem.
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
Kurser inden for grundlæggende programmering

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

IT-JOB