# Tablas vinculadas con vODBC

**URL:** <https://foros.velneo.com/t/tablas-vinculadas-con-vodbc/8225>\
**Category:** Velneo\
**Created:** [3 Agosto, 2015 08:18 UTC](https://foros.velneo.com/t/tablas-vinculadas-con-vodbc/8225 "2015-08-03T08:18:54Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![ccuesta](https://avatars.discourse-cdn.com/v4/letter/c/c77e96/32.png) [@ccuesta](https://foros.velneo.com/u/ccuesta)\
**Post date:** [3 Agosto, 2015 08:18 UTC](https://foros.velneo.com/t/tablas-vinculadas-con-vodbc/8225/1 "2015-08-03T08:18:54Z")

</div>

Hola, estoy intentando hacer un gestor de consultas que permita a mis usuarios acceder a información de la base de datos seleccionando ellos mismos lo que necesiten. Ya he desarrollado alguna herramienta de este tipo antes en otros entornos basándome en sentencias sql donde parametrizando la vinculación entre tablas se hace fácil para el usuario llegar a lo que necesita.

En V7 veo que hay posibilidad de acceso por ODBC pero me encuntro con la dificultad de enlazar tablas. He probado que esta opción funciona:

select facturas\_emitidas.ID as “di” ,descripcion, facturas\_emitidas\_lin.id as “dilin”, precio  
from facturas\_emitidas, facturas\_emitidas\_lin  
where facturas\_emitidas.num\_factura=‘VN1057’ and facturas\_emitidas\_lin.facturas\_emitidas=59

Pero no funciona si en lugar del 59 (Que es el ID de facturas\_emitidas) pongo “facturas\_emitidas.ID” que es como debería ser para no tener que poner un literal.

¿Alguien sabe como vincular dos tablas con vODBC?

Gracias de antemano.

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [4 Agosto, 2015 04:22 UTC](https://foros.velneo.com/t/tablas-vinculadas-con-vodbc/8225/2 "2015-08-04T04:22:30Z")

</div>

Hola ccuesta.

Según la escueta ayuda de vODBC, la cláusula WHERE es usada para especificar los criterios de selección basados en una condición de búsqueda. Por lo tanto no sirve para establecer relaciones entre tablas como en SQL estandar.

Seguramente no es necesario indicar las relaciones entre tablas porque en Velneo ya están especificadas de forma permanente en el proyecto de datos.

En tu caso, la relación facturas\_emitidas\_lin.facturas\_emitidas = facturas\_emitidas.ID es implícita cuando pones:  
FROM facturas\_emitidas, facturas\_emitidas\_lin

Pruébalo.  
Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![ccuesta](https://avatars.discourse-cdn.com/v4/letter/c/c77e96/32.png) [@ccuesta](https://foros.velneo.com/u/ccuesta)\
**Post date:** [4 Agosto, 2015 06:19 UTC](https://foros.velneo.com/t/tablas-vinculadas-con-vodbc/8225/3 "2015-08-04T06:19:50Z")

</div>

Gracias por la respuesta Paco, pero no funciona. Aunque velneo “conoce” la vinculación de las tablas y sería muy sencillo implementarlo a la hora de hacer consultas, lo he probado y no funciona.

Si no especificas los límites en la parte “where” de las dos tablas, lo que hace es devolver todos los registros de la segunda tabla para cada uno de la primera, sin tener en cuenta vinculación alguna.

De todas formas investigando un poco más he visto que puede hacerse mediante una subconsulta:

select facturas\_emitidas.ID as di ,descripcion, facturas\_emitidas\_lin.id as dilin, precio  
from facturas\_emitidas, facturas\_emitidas\_lin  
where “facturas\_emitidas”.“num\_factura”=‘VN1057’  
and “facturas\_emitidas\_lin”.“facturas\_emitidas” = (select ID from facturas\_emitidas where “facturas\_emitidas”.“num\_factura”=‘VN1057’)

No es muy elegante pero creo que me valdrá.  
Lo dicho, gracias por la inspiración.

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [4 Agosto, 2015 14:06 UTC](https://foros.velneo.com/t/tablas-vinculadas-con-vodbc/8225/4 "2015-08-04T14:06:50Z")

</div>

Hola ccuesta.

Me “chirría” mucho esa sentencia SQL.  
Ahora no puedo probar el componente vODBC.

Consulta a soporte ya que una cosa tan sencilla tiene que tener una mejor solución.

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![ccuesta](https://avatars.discourse-cdn.com/v4/letter/c/c77e96/32.png) [@ccuesta](https://foros.velneo.com/u/ccuesta)\
**Post date:** [5 Agosto, 2015 05:59 UTC](https://foros.velneo.com/t/tablas-vinculadas-con-vodbc/8225/5 "2015-08-05T05:59:51Z")

</div>

Sí, a mi tampoco me resulta muy elegante pero esto es lo que me respondieron en soporte:

“_El problema es la cláusula where, ésta solamente puede ser usada en consultas sencillas, con una única tabla, pero no con una consulta con más tablas. En este segundo caso sería necesario hacer la consulta sin el where y extraer, de la lista obtenida, el registro deseado_”

---

<div class="post-metadata">

**Author:** ![tic-software](https://avatars.discourse-cdn.com/v4/letter/t/c4cdca/32.png) [@tic-software](https://foros.velneo.com/u/tic-software)\
**Post date:** [5 Agosto, 2015 06:49 UTC](https://foros.velneo.com/t/tablas-vinculadas-con-vodbc/8225/6 "2015-08-05T06:49:24Z")

</div>

Puf, nunca he usado el vODBC, sabiendo esto la verdad que limita mucho mucho su uso.

Doy por supuesto que tampoco funciona JOIN no?

---

<div class="post-metadata">

**Author:** ![ccuesta](https://avatars.discourse-cdn.com/v4/letter/c/c77e96/32.png) [@ccuesta](https://foros.velneo.com/u/ccuesta)\
**Post date:** [5 Agosto, 2015 07:46 UTC](https://foros.velneo.com/t/tablas-vinculadas-con-vodbc/8225/7 "2015-08-05T07:46:06Z")

</div>

No, “join” tampoco funciona

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [28 Agosto, 2015 21:47 UTC](https://foros.velneo.com/t/tablas-vinculadas-con-vodbc/8225/8 "2015-08-28T21:47:25Z")

</div>

Hola ccuesta.

He hecho alguna prueba con vODBC.  
Usando Velneo como cliente ODBC, imposible hacer nada, el vClient se cierra constantemente.

Usando otra herramienta, efectívamente he comprobado que el JOIN entre 2 tablas se respeta cuando el orden de las tablas es plural,maestro en la cláusula FROM.

Así tu consulta SQL quedaría:  
``

```

SELECT facturas_emitidas.ID as di, descripcion, facturas_emitidas_lin.id as dilin, precio
FROM facturas_emitidas_lin, facturas_emitidas
WHERE facturas_emitidas_lin.facturas_emitidas = (SELECT ID FROM facturas_emitidas WHERE num_factura = ‘VN1057’)

```

Lo que no me funciona es poner una condición para la tabla facturas\_emitidas, por eso no se puede usar:  
WHERE facturas\_emitidas.num\_factura = ‘VN1057’

De todas formas el vODBC está muy verde, es un estado de Beta permanente. Por lo tanto no es fiable para producción.  
De momento es una herramineta muy básica.

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![gontorre](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/gontorre/32/5728_2.png) [@gontorre](https://foros.velneo.com/u/gontorre)\
**Post date:** [30 Agosto, 2015 16:25 UTC](https://foros.velneo.com/t/tablas-vinculadas-con-vodbc/8225/9 "2015-08-30T16:25:27Z")

</div>

Yo estuve haciendo pruebas hace tiempo con Crystal reports utilizando el ODBC de Velneo y cada vez que intentaba hacer una consulta que utilizara más de una tabla el Crystal reports rompía.

Un saludo

Gonzalo Torre

---

<div class="post-metadata">

**Author:** ![ccuesta](https://avatars.discourse-cdn.com/v4/letter/c/c77e96/32.png) [@ccuesta](https://foros.velneo.com/u/ccuesta)\
**Post date:** [14 Septiembre, 2015 13:22 UTC](https://foros.velneo.com/t/tablas-vinculadas-con-vodbc/8225/10 "2015-09-14T13:22:35Z")

</div>

Es una pena porque según la documentación debería ser muy potente y abriría el mundo velneo a toda clase de herramientas. En fin esperemos que se lo “curren” y termine de estar en esa eterna versión beta.

En cualquier caso, gracias por la ayuda.  
Carlos
