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

notación tabla.campo no funciona en ResultSet

Estas en el tema de notación tabla.campo no funciona en ResultSet en el foro de ASP Clásico en Foros del Web. Hola y gracias por leerme :). El problema aparece cuando migro mi base de datos de access a sql server. Dejando de lados algunos problemas ...
  #1 (permalink)  
Antiguo 28/10/2004, 08:52
 
Fecha de Ingreso: mayo-2004
Mensajes: 12
Antigüedad: 20 años
Puntos: 0
notación tabla.campo no funciona en ResultSet

Hola y gracias por leerme :).

El problema aparece cuando migro mi base de datos de access a sql server. Dejando de lados algunos problemas con desbordamientos en los campos con fechas, me ocurre un error peor.

El problema es que cuando hago una consulta a varias tablas que contienen algun campo con el mismo nombre. Antes en el recordset para referirme a ellas utilizaba la notación tabla.campo para distinguir entre los resultados de cada tabla. En cambio ahora desde sqlserver me da el siguiente error cuando accedo a esos campos del recordset:

ADODB.Recordset error '800a0cc1'

No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido.

En cambio si pongo simplemente el nombre del campo me funciona pero me da los datos de la última de las tablas.


Pregunta, como consigo acceder a los datos de los campos con el mismo nombre del resto de las tablas?, cual es la notación requerida o porqué falla la notación habitual que usaba en el access?

Muchas Gracias.

PD. Espero haberme explicado.
  #2 (permalink)  
Antiguo 28/10/2004, 11:25
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Una forma es lo que dicen aca: http://www.forosdelweb.com/f15/relacion-entre-tablas-con-campos-iguales-218402/
  #3 (permalink)  
Antiguo 29/10/2004, 00:57
 
Fecha de Ingreso: mayo-2004
Mensajes: 12
Antigüedad: 20 años
Puntos: 0
mmmmmmm

Muchas gracias, la cuestión es que así voy a tener que modificar un montón de consultas, a parte de que algunas tablas tienen bastantes campos y utilizo *, si tengo que especificar todos los campos de algunas tablas me voy a volver mico.

Otra pregunta, no es una notación estandar tabla.campo? es que yo es lo que utilicé siempre, y no se porqué se me presenta este error ahora.

Gracias de todas formas.

Un saludo.
  #4 (permalink)  
Antiguo 29/10/2004, 05:04
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
puedes ´pone un pedacito de codigo como para ver el asunto?
  #5 (permalink)  
Antiguo 03/11/2004, 02:24
 
Fecha de Ingreso: mayo-2004
Mensajes: 12
Antigüedad: 20 años
Puntos: 0
Hola, lo siento por tardar tantos días.

Aquí os pongo un poco del código que me da el error:

Consulta:

Código PHP:
set rsVar bd.Execute("select * from item,dpto,area,gcode where "&" gcode.cod='"&request.QueryString("gcode")&"'" " and item.cod=gcode.item and dpto.cod=gcode.dpto and area.cod=gcode.area"
La consulta parece que funciona, pero a la hora de acceder al result set:

<span class="fijo"><%=rsVar("item.des")%></span>
<span class="fijo"><%=rsVar("dpto.des")%></span>

Esto con access funciona, pero al pasarlo a sqlserver no.

Para poder acceder a los datos en sqlserver necesito hacer un alias para cada campo que se llame igual en dos tablas por ejemplo des. Lo malo es que tendría que hacer unas consultas muy grandes indicando alias para varios campos y tendría que modificar muchísimo código.

La pregunta es, es una notación erronea la de item.des? por que el sqlserver entiende la consulta y después no funciona el acceso a los datos?.

PD: el sqlserver al parecer traduce la sentencia sql por esta:

SELECT gcode.cod gcod,item.des ides,gcode.titulo gtitulo,dpto.des ddes,area.des ades FROM dbo.item
INNER JOIN dbo.gcode ON dbo.item.cod = dbo.gcode.item
INNER JOIN dbo.dpto ON dbo.gcode.dpto = dbo.dpto.cod
INNER JOIN dbo.area ON dbo.gcode.area = dbo.area.cod WHERE "&"dbo.gcode.cod='"&request.QueryString("gcode")&" '")

Bueno, los alias son cosa mía.

Espero haberme echo entender.

Un saludo y gracias.
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 11:16.