Delphi - Consulta SQL Campo ambiguo

 
Vista:

Consulta SQL Campo ambiguo

Publicado por Wiggles (1 intervención) el 03/11/2016 09:51:41
Hola buenos días.

Me esta ocurriendo que no puedo ejecutar una consulta de SQL como quisiera en Delphi 7.

Pongamos que por ejemplo yo tengo el siguiente código:

[...]
Add("Select ac.articulo from ocartacp ac left join ocalm am");
Add("on ac.almacen = am.almacen");
[...]

Solo en estas dos líneas de código, cuando quiero ejecutar la consulta, no me tiene en cuenta los prefijos 'ac.' ni 'am.', por lo que cuando quiero ejecutar me muestra que, evidentemente, el campo almacen es ambiguo, puesto que está entendiendo ("on almacen = almacen").

¿Cómo puedo escribir el prefijo y el punto, para que delphi me lo interprete correctamente y ejecutar bien la consulta?

Muchas gracias.
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

Consulta SQL Campo ambiguo

Publicado por E.T. (1201 intervenciones) el 03/11/2016 19:44:57
La consulta está bien, no has probado ejecutandola desde la herramienta de edicion del manejador de la base de datos?
solo tienes ese codigo sql en tu procedimiento, no hay mas codigo abajo, algun order by?
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

Consulta SQL Campo ambiguo

Publicado por Wiggles (1 intervención) el 10/11/2016 09:40:25
Hola,

Si, ya se que la consulta está bien. La ejecuto sin problema en cualquier manejador de bases de datos.

La cuestión es que en Delphi me está haciendo caso omiso de los "prefijos" con que nombro a las tablas cuando quiero hacer el join.

si pongo [...] on ac.almacen = am.almacen [...] omite los "ac." y "am.", por lo que quedaria del siguiente modo: [...] on almacen = almacen [...]

Evidentemente si comparo esos dos campos con el mismo nombre, delphi no sabe que campo pertenece a segun que tabla.

También he probado a poner directamente el nombre de la tabla delante del campo, por ejemplo:
[...] on ocartacp.almacen = ocalmacen.almacen [...] Pero me hace lo mismo, del punto para atras no comprende lo que escribo y lo omite.

No se si me he explicado bien lo siento.

Gracias.
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
Imágen de perfil de fran
Val: 18
Ha aumentado 1 puesto en Delphi (en relación al último mes)
Gráfica de Delphi

Consulta SQL Campo ambiguo

Publicado por fran (10 intervenciones) el 11/11/2016 09:17:12
Add("Select ac.articulo from ocartacp ac left join ocalm am ");
Add("on ac.almacen = am.almacen");

Prueba con un espacio al final del join..
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

Consulta SQL Campo ambiguo

Publicado por E.T. (1201 intervenciones) el 12/11/2016 18:03:13
Te marca delphi algun error? pues no es delphi quien marcar el campo ambiguo sino el manejador. Que manejador usas y que componentes de delphi para acceder usas?
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