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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-08-2017
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
Consulta Entre Conexiones ADO

tengo 2 conexiones ADO

ADO1 = se conecta a una base de datos SQL (hay consultas)
ADO1 = se conecta a una tabla excel

lo que quiero hacer es eliminar informacion en una tabla asociada a ADO1 pero que no se encuentren en la lista de ADO2

se entiende?

algo asi

Código Delphi [-]
Delete from #Ventas where N_factura in (Select Documento From ado2.Tbl1)
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #2  
Antiguo 03-08-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola

Creo que la consulta debería ser:
Código SQL [-]
DELETE FROM TABLA1 T1
WHERE NOT EXISTS (SELECT T2.REF_ID FROM TABLA2 T2 WHERE T2.REF_ID = T1.ID)

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 04-08-2017
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Que yo sepa debes hacerlo de forma manual.
No es posible "montar" ni "ejecutar" una SQL que involucre 2 conexiones TADOConnection.

Sólo se me ocurre un recorrido secuencial, pero la viabilidad depende del número de registros que tengas.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 04-08-2017
antoineL antoineL is offline
Registrado
NULL
 
Registrado: ago 2017
Posts: 8
Poder: 0
antoineL Va por buen camino
Cita:
Empezado por oscarac Ver Mensaje
tengo 2 conexiones ADO

ADO1 = se conecta a una base de datos SQL (hay consultas)
ADO2 = se conecta a una tabla excel

lo que quiero hacer es eliminar informacion en una tabla asociada a ADO1 pero que no se encuentren en la lista de ADO2
Una conexión ADO es un acceso a un entorno. Las operaciones las ejecutan el proveedor de datos, que puede ser en otra máquina, conceptualmente es otro programa. Para hacer que este proveedor ejecute una operación, tiene que tener a mano los datos con las cuales opera. En tu caso, sería pedir a ADO1 hacer la operación, con acceso a los datos de la tabla Excel.

Solución 1: pasar los parámetros necesario al proveedor de datos que opera la tabla SQL para conectarse a la tabla Excel; poder arbitrariamente complejo, en cualquier caso no será muy sencillo de portar a otro SQL o otra versión de SQL o de Excel...

Solución 2: replicar en la base SQL en una nueva tabla los datos necesarias extraídas de la tabla Excel (una sencilla lista con las referencias de los datos en Excel), luego aplicar la operación en ADO1 contra estos datos entonces locales

Solución 2: hacer las operaciones manualmente una por una en ADO1, consultando a cada vez a ADO2.
Responder Con Cita
  #5  
Antiguo 17-08-2017
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 121
Poder: 17
APO Va por buen camino
Una tercera solución, podría ser importar los registros de la conexión ADO2 de excel, a una tabla temporal de la conexión ADO1. Entonces sí que podrías eliminar la información que quieras desde la misma conexión ADO1, pudiendo ser algo así:

Delete from #Ventas where N_factura in (Select Documento From Tabla_Temporal)
Responder Con Cita
  #6  
Antiguo 17-08-2017
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
No se si la primera tabla es de SQL Server o de que SQL, en caso de que sea la primera opción podrías vincular la hoja de calculo de excel dentro del mismo gestor de BBDD con lo que podrías seguir utilizando la tabla independientemente y los datos serían accesibles desde las consultas de SQL Server.


https://msdn.microsoft.com/es-es/lib...=sql.110).aspx

Saludos
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consulta entre 2 fechas. DeLiRioS MySQL 14 29-04-2013 19:36:35
Consulta entre fechas con ADO radenf Varios 7 16-12-2010 13:06:35
Consulta entre dos tablas! jjha79 SQL 5 18-11-2009 18:38:08
1 Consulta 2 Conexiones gilberto_1126 Conexión con bases de datos 1 19-02-2008 03:13:13
Consulta entre valores rruffino Conexión con bases de datos 1 11-05-2007 04:25:34


La franja horaria es GMT +2. Ahora son las 21:41:00.


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