ASP - Problema en una conulta

 
Vista:

Problema en una conulta

Publicado por Leonardo (8 intervenciones) el 28/02/2006 16:54:34
Por ejemplo. capturo varios valores de una tabla en un vector y x cada valor de ese vector realizar una consulta sql para generar un informe.

¿Se puede realizar eso?

Tengo este codigo pero solo me genera la tabla x el ultimo registro del vector

for k=0 to ubound(vector_id)

id_nombre=vector_id(k)

Set con2 = Server.CreateObject("ADODB.Connection")
con2.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=bd\cursos.mdb"

sql2 = "select personal.nombre, cargos.cargo, cursos.curso, movimientos.fecha_inicio, movimientos.fecha_termino, entidades.entidad," &_
"movimientos.evaluacion, ubicacion.nombre_ubicacion, area.nombre_area from area, cargos, cursos," &_
"entidades, movimientos, personal, ubicacion where movimientos.nombre=" & id_nombre & " and movimientos.nombre=personal.id "&_
"and movimientos.curso=cursos.id and movimientos.entidad=entidades.id and personal.cargo=cargos.id and "&_
"personal.ubicacion=ubicacion.id and personal.area=area.id"

set rs2 = con2.execute(sql2)
id_nombre=""

next

tabla_1 = rs2.GetRows
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema en una conulta

Publicado por Cecilia Colalongo (22 intervenciones) el 01/03/2006 10:56:38
Fijate de hacer:

Set con2 = Server.CreateObject("ADODB.Connection")
con2.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=bd\cursos.mdb"

sql2 = "select personal.nombre, cargos.cargo, cursos.curso, movimientos.fecha_inicio, movimientos.fecha_termino, entidades.entidad," &_
"movimientos.evaluacion, ubicacion.nombre_ubicacion, area.nombre_area " &
" from movimientos INNER JOIN personal ON
movimientos.nombre=personal.id INNER JOIN cursos ON
movimientos.curso=cursos.id INNER JOIN entidades ON
movimientos.entidad=entidades.id INNER JOIN cargos ON
personal.cargo=cargos.id INNER JOIN ubicacion ON
personal.ubicacion=ubicacion.id INNER JOIN area ON
personal.area=area.id " & " WHERE movimientos.nombre IN ("

for k=0 to ubound(vector_id)

sql2 = sql2 & vector_id(k)

If k<ubound(vector_id)
sql2 = sql2 & ","
End If

next

sql2=sql2 & ")"

set rs2 = con2.execute(sql2)

De esta forma la conexión la abres una sola vez y traes todos los registros del vector.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema en una conulta

Publicado por Leonardo (8 intervenciones) el 01/03/2006 13:09:18
Hola Cecilia Colalongo, gracias por responder a mi consulta, esto arreglo mi dua pero aun me arroja un problema y no se q es.

Este es el Error:

Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (coma) en la expresión de consulta 'movimientos.nombre=personal.id and movimientos.curso=cursos.id and movimientos.entidad=entidades.id and personal.cargo=cargos.id and personal.ubicacion=ubicacion.id and personal.area=area.id and movimientos.nombre=(31,81,84)'.

Mi codigo es el siguiente:

Set con2 = Server.CreateObject("ADODB.Connection")
con2.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=bd\Cursos.mdb"

sql2 = "select personal.nombre, cargos.cargo, cursos.curso, movimientos.fecha_inicio, movimientos.fecha_termino, entidades.entidad," &_
"movimientos.evaluacion, ubicacion.nombre_ubicacion, area.nombre_area from area, cargos, cursos," &_
"entidades, movimientos, personal, ubicacion where movimientos.nombre=personal.id "&_
"and movimientos.curso=cursos.id and movimientos.entidad=entidades.id and personal.cargo=cargos.id and "&_
"personal.ubicacion=ubicacion.id and personal.area=area.id and movimientos.nombre=("

for k=0 to ubound(vector_id)

sql2= sql2 & vector_id(k)
if k<ubound(vector_id) then

sql2 = sql2 & ","

end if
next

sql2 = sql2 & ")"

set rs2 = con2.execute(sql2)

Ojala encuentres pq me arroja el error ya q yo no pude

Atte
Leonardo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema en una conulta

Publicado por Cecilia Colalongo (22 intervenciones) el 01/03/2006 14:07:15
El error esta en: "movimientos.nombre=(31,81,84)"

debe ser: "movimientos.nombre IN (31,81,84)" ya que es una lista de elementos, no un solo elemento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema en una conulta

Publicado por Leonardo (1 intervención) el 01/03/2006 14:40:06
Gracias tenias razon...

Atte
Leonardo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar