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

Ayuda con un Select

Estas en el tema de Ayuda con un Select en el foro de ASP Clásico en Foros del Web. Hola a todos les explico mi problema tengo dos varias tablas con un campo en comun llamado CVE_DEPTO Y DE TIPO VARCHAR DE LONGITUD 5 ...
  #1 (permalink)  
Antiguo 30/07/2004, 16:36
Avatar de Fabu_dina  
Fecha de Ingreso: enero-2004
Mensajes: 425
Antigüedad: 21 años, 4 meses
Puntos: 1
Pregunta Ayuda con un Select

Hola a todos les explico mi problema tengo dos varias tablas con un campo en comun llamado CVE_DEPTO Y DE TIPO VARCHAR DE LONGITUD 5

MI PROBLEMA RADICA CUANDO HAGO LO SIGUIENTE:

1) ME CONECTO A LA DB , POR MEDIO DE UN DO WHILE RECORRO LOS DEPARTAMENTOS (1 TABLA)

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ConString_inter
Set rsDeptos = Conn.Execute("SELECT A.CVE_DEPTO,A.DES_DEPTO, B.SHOP_ACTIVO FROM DEPARTAMENTOS a, DEPARTAMENTOS_WEB b where a.cve_depto=b.cve_depto Order By A.DES_DEPTO")

While Not rsDeptos.EOF

::::::: COMENTARIO
AQUI HAGO LA SEGUNDA CONEXION CON DEPENDENCIA DE ACUERDO AL CAMPO CVE_DEPTO

Set Conn1 = Server.CreateObject("ADODB.Connection")
Conn1.Open ConString_inter
Set rsCategorias = Conn1.Execute("select distinct b.cve_cat_Ar, a.cve_depto, b.des_cat_Ar, c.shop_activo from variedades_x_artic a, categorias b, categorias_web c where a.cve_depto = '"&rsDeptos("cve_depto")&"' and b.cve_cat_Ar = a.cve_cat_ar and b.cve_cat_ar=c.cve_cat_ar order by B.des_cat_ar")

::::::: COMENTARIO::::::

RESULTA SER QUE NO ENCUENTRA NINGUN DATO EL PROBLEMA YA LO TENGO LOCALIZADO MAS NO SE QUE HACER CON EL ESPERO ALQUIEN ME PUEDA AYUDAR YA QUE ME URGE SOLUCIONAR ESTE PROBLEMA
el problema es que el rsDeptos(cve_depto") lo considera como numero y a la hora de hacer el select no encuentra porque los compara contra datos en varchar, mi inquietud es como hacer que el rsDeptos("cve_deptos") lo tome como texto para realizar la comparacion correctamente



¡¡¡¡¡¡¡¡ gracias por su ayuda!!!!!!!!!
  #2 (permalink)  
Antiguo 30/07/2004, 22:15
 
Fecha de Ingreso: julio-2004
Mensajes: 29
Antigüedad: 20 años, 9 meses
Puntos: 0
Hola Fabu dina

Lo primero, creo que sería, si se pudiese, darle el mismo tipo de campo a los dos que van a relacionarse, de esa forma podrías usar el INNER JOIN sin problemas.

Pero tal como lo tienes, creo que es muy fácil la solución.

Lee la clave del departamento antes de hacer el segundo SELECT y a esa variable le haces lo siguiente

campo = mid(campo & "k",1,len(campo))

Después en el segundo SELECT comparas con campo.

Espero que te sirva
  #3 (permalink)  
Antiguo 02/08/2004, 07:46
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Pues así como lo haces: "...where a.cve_depto = '"&rsDeptos("cve_depto")&"' and b.cve_cat_Ar...".

El problema ha de estar por otro lado, ya que si imprimes la consulta generada, seguro funciona bien. Lo que no entiendo es que si mencionaste que tienes dos tablas con un campo en común "VARCHAR" dices que el rsDeptos(cve_depto") lo considera como numero. ¿por que dices que lo tama como número si es varchar?
  #4 (permalink)  
Antiguo 02/08/2004, 20:15
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
AVISO:

Si estas accediendo a la misma base de datos en ambas conexiones, estas incurriendo en un error.

no deberias crear dos objetos de conexion, con uno solo te basta.
  #5 (permalink)  
Antiguo 02/08/2004, 21:19
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
Cita:
Iniciado por Muzztein
AVISO:
...
no deberias crear dos objetos de conexion, con uno solo te basta.

Si, es cierto... pero eso "no debería" dar error... ¿o si?
__________________
...___...
  #6 (permalink)  
Antiguo 04/08/2004, 17:12
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
nops..no da error, lo que provoca es un lagueo enorme, pero bien dices no da error. Es solo una observacion.
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 07:54.