Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > PostgreSQL

Respuesta
 
Herramientas Desplegado
Antiguo 19-nov-2006, 16:55   #1 (permalink)
horyfox ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2006
Mensajes: 13
Consulta Multitabla

HOLA AMIGOS Mi problema es el siguiente: al realizar la siguiente consulta:
sql = "select p.*, t.* from producto p, tipoproducto t where p.idtipoproducto=t.idtipoproducto and p.descripcion like '" & frmcontrolstoc.txtproducto.Text & "%' and p.estado='" & "SI" & "' and p.idtipoproducto=" & frmcontrolstoc.DCproducto.BoundText & " ORDER BY p.descripcion"

La consulta es ejecutada por el motor sin problemas, y me devuelve un resultado correcto en cuanto a la cantidad de registros.
El problema surge cuando los registros del recordset intento leerlos
ej:
NuevoItem.SubItems(2) = rst.("p.descripcion")

EL ERROR ME SURGE SIEMPRE QUE USE P. OSEA COMO QUE NO PUEDO USAR EL ALIAS QUE LE ASIGNE A LA TABLA en este caso p de la tabla producto.
Si alguien me puede sacar la duda, sobre que sintaxis usar o cual es mi error. Muchas gracias desde ya
horyfox está desconectado   Responder Citando
Antiguo 19-nov-2006, 20:31   #2 (permalink)
foo
foo ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2006
Mensajes: 278
en:
NuevoItem.SubItems(2) = rst.("p.descripcion")

solo pon "descripcion"
foo está desconectado   Responder Citando
Antiguo 19-nov-2006, 21:41   #3 (permalink)
horyfox ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2006
Mensajes: 13
Pregunta

Muchas gracias foo por tu voluntad de sacarme la duda, pero no me soluciona el problema estas en lo cierto de que poniendo:

NuevoItem.SubItems(2) = rst.Fields("descripcion")

No me larga un problema pero el tema la duda viene de como hacer para sitar un campo usando el alias de una tabla. en el mismo ejemplo si ves el codigo tambien sito los campos de la tabla tipoproducto donde tambien tengo que el nombre de cada tipo es con el campo descripcion por lo que me quedaria:

NuevoItem.SubItems(2) = rst.Fields("p.descripcion")
NuevoItem.SubItems(4) = rst.Fields("t.descripcion")

donde en uno sito al registro de una tabla y en el otro al de la otra tabla.
Podria ser una solucion asignar nombres diferentes a cada campo, pero el tema viene de que estoy migrando desde access y ahi esto no era un problema y tengo que en muchas consultas multitabla uso el alias para las tablas y funciona a la perfeccion.

si dejo(tu sugerencia):

NuevoItem.SubItems(2) = rst.Fields("descripcion")
NuevoItem.SubItems(4) = rst.Fields("descripcion")

en ambos campos me deposita la descripcion del producto y no de lo que necesito. Otra solucion seria poner el indice adecuado dejando:

NuevoItem.SubItems(2) = rst.Fields(2)
NuevoItem.SubItems(4) = rst.Fields(5)

esto hace lo que necesito pero el tema viene de que si tomo esta politica para resolver este problema tendria que modificar una gran parte de las consultas que tengo en mi programa que esta funcionando a la perfeccion en access. Por lo que necesito sitar al campo en cuestion haciendo uso del alias.

Quisiera saber si esto es posible, desde ya muchas gracias por la buena onda.
horyfox está desconectado   Responder Citando
Antiguo 20-nov-2006, 06:45   #4 (permalink)
foo
foo ha deshabilitado el karma
 
Fecha de Ingreso: febrero-2006
Mensajes: 278
hasta donde se, los alias del tipo (p.descripcion) en las consultas sql solo sirven durante la ejecucion de esta.

lo que tendrias que hacer, es asignar a los campos un nombre mas adecuado

select ..., p.descripcion, t.descripcion as descriptionTipo,...
foo está desconectado   Responder Citando
Antiguo 20-nov-2006, 07:21   #5 (permalink)
horyfox ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2006
Mensajes: 13
De acuerdo

Muchas gracias foo. Lo tenía como alternativa posible, por lo visto tendré que recurrir a ella.
Trataba de buscar lo mencionado debido a que si lo conseguia no tenia que modificar una gran parte de las consultas del programa.
Muchas gracias por la buena onda!!
horyfox está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 05:53.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93