Foros del Web » Programando para Internet » ASP Clásico »

Diccionario

Estas en el tema de Diccionario en el foro de ASP Clásico en Foros del Web. Hola. Quiero hacer un índice por palabras de los conceptos ingresados en un campo de una BD Access. Me explico: si en la bd existen ...
  #1 (permalink)  
Antiguo 17/03/2005, 07:28
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 23 años, 2 meses
Puntos: 2
Diccionario

Hola. Quiero hacer un índice por palabras de los conceptos ingresados en un campo de una BD Access.

Me explico: si en la bd existen por ejemplo los conceptos Andorra, Alemania, Barcelona y Dinamarca, quiero hacer un SQL del que salgan las letras iniciales A, B y D, para a partir de ahí hacer un bucle con enlaces a todas las palabras que empiecen por A por B o por D.
  #2 (permalink)  
Antiguo 17/03/2005, 10:38
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Raro pero interesante... luego le veo la manera
__________________
...___...
  #3 (permalink)  
Antiguo 17/03/2005, 11:25
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Acá ta:

SQL = "SELECT Left(Diccionario.Palabra,1) AS Inicial, Count(Diccionario.Palabra) AS CantidadPalabras FROM Diccionario GROUP BY Left(Diccionario.Palabra,1) ORDER BY Left(Diccionario.Palabra,1)"
__________________
...___...
  #4 (permalink)  
Antiguo 17/03/2005, 13:23
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 23 años, 2 meses
Puntos: 2
Perfecto como siempre, Dazuaga.

El ejemplo está en práctica en http://granadalinks.com/asesur/diccionario.asp, es una página en pruebas.

Las iniciales son enlaces internos al lugar donde aparece la primera palabra de cada letra.

Aquí dejo el código, seguro que puede ser optimizado:

<%
strSQL2 = "SELECT Left(diccionario.concepto,1) AS Inicial, Count(Diccionario.concepto) AS CantidadPalabras FROM diccionario GROUP BY Left(diccionario.concepto,1) ORDER BY Left(diccionario.concepto,1)"

Set rs2 =Server.CreateObject("ADODB.RecordSet")
rs2.Open strSQL2, conn, 3%>


<div style="text-align:center">
<%do while not rs2.eof %>
<a href="#<%=rs2("Inicial") & "1"%>"><%=rs2("Inicial")%></a>&nbsp;
<%rs2.movenext
loop%>
</div>

<%rs2.movefirst

do while not rs2.eof

strSQL="SELECT * FROM diccionario WHERE concepto LIKE '"&rs2("Inicial")&"%' ORDER BY concepto"
Set RS =Server.CreateObject("ADODB.RecordSet")
RS.Open strSQL, conn, 3

contador=1
do while not rs.eof%>

<a name="<%=rs2("Inicial") & contador%>"></a>
<p><strong><%If Not trim(RS("concepto"))= "" Then Response.Write RS("concepto")%></strong><br />
<%If Not trim(RS("significado"))= "" Then Response.Write Replace(rs("significado"), Chr(13), "<br />")%>
</p><br />

<%
rs.movenext
contador=contador+1
loop

rs2.movenext
loop

Set strCon = Nothing
rs2.close
set rs2 = nothing

rs.close
set rs = nothing
conn.close
set conn = nothing
%>


Y una preguntilla de SQL: ¿Qué diferencia hay entre DISTINCT Y GROUP BY? Yo pensaba inicialmente que el SQL se haría utilizando DISTINCT.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:35.