PDA

Ver la Versión Completa : Problemas de inserciones con ADO


Mauro.NET
26-04-2005, 17:37:59
Hola que tal, uso el componente TADODataSet conectado a un motor SyBase. Uso los procedimientos Insert, Edit, Post, Delete de este componente. Pero me da problemas en los Insert cuando en el commandtext uso una consulta SQL que tenga inner join. El resultado de la consulta la muestro en una grilla.

Por ejemplo lo siguiente me causa ese error:

select E.*, D.Depto from Empleados E inner join Departamentos D

Lo siguiente funciona bien, pero la consulta se torna mas compleja

select E.*, (select Depto from Departamentos D where D.Cod = E.Cod) from Empleados

En realidad tengo consultas complejas, esto es un ejemplo simple.

Alguien sabe por que ocurre esto??? como puedo solucionarlo?

Dimanu
26-04-2005, 19:14:01
:D Hola amigo te cuento que la forma de hacer el join no es la mas apropiada de esta manera:

select E.*, D.Depto from Empleados E inner join Departamentos D
aqui te falta la clausula ON entonces seria:

select E.*, D.Depto from Empleados E inner join departamentos D ON E.CAMPO1 = D.CAMPO1 donde campo1 es que se debe machear.

Otra forma de armar la consulta seria:

select E.*,
D.*
from Empleados E,(
select Depto
from Departamentos
)D
where E.Cod = D.Cod

Explicacion de esta ultima: 1. se obtienen todos los deptos. listando la columna Dpto solamente-----
2. se machea el resultado de esta con la de empleados y se proyectan las columnas-----..

Suerte amigo...

Mauro.NET
27-04-2005, 05:18:36
Antes que nada agradezco tu respuesta, ahora no he tenido problemas.
Con respecto a la consulta SQL que te escribi, disculpa si no respeto los estandares, pero por comodidad, SyBase nos deja hacer INNER JOIN sin el ON ya que en este motor es opcional, colocarlo o no, devuelve los mismos resultados. tengo todo un sistema entero con esa comodidad, pero pronto migrare a oracle y me vere en problemas.