Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-04-2005
Mauro.NET Mauro.NET is offline
Miembro
 
Registrado: mar 2005
Posts: 70
Poder: 20
Mauro.NET Va por buen camino
Problemas de inserciones con ADO

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?
Responder Con Cita
  #2  
Antiguo 26-04-2005
Dimanu Dimanu is offline
Miembro
 
Registrado: abr 2005
Posts: 10
Poder: 0
Dimanu Va por buen camino
Solucion al problema de Insert con ADO

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...
__________________
Diego
Responder Con Cita
  #3  
Antiguo 27-04-2005
Mauro.NET Mauro.NET is offline
Miembro
 
Registrado: mar 2005
Posts: 70
Poder: 20
Mauro.NET Va por buen camino
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:50:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi