Foros del Web » Programación para mayores de 30 ;) » Programación General »

Trabajar con Recordset sin conexion

Estas en el tema de Trabajar con Recordset sin conexion en el foro de Programación General en Foros del Web. Hola! Estoy haciendo una aplicación en Visual Basic 6.0 y uso ADO 2.5 para conectarme a la BD. El problema es el siguiente, tengo un ...
  #1 (permalink)  
Antiguo 03/03/2004, 14:25
 
Fecha de Ingreso: septiembre-2003
Mensajes: 172
Antigüedad: 20 años, 7 meses
Puntos: 0
Trabajar con Recordset sin conexion

Hola!

Estoy haciendo una aplicación en Visual Basic 6.0 y uso ADO 2.5 para conectarme a la BD. El problema es el siguiente, tengo un datagrid enlazado con un datacontrol que me sirve para hacer consultas sobre dos temas concretos de dos tablas diferentes. Lo hago creando un recordset que me abre una sentencia SQL y se lo asigno al datacontrol. El problema es que necesito hacer una consulta sobre dos tablas distintas y mezclar sus resultados, es decir, ejecutar una consulta sobre una tabla, me da los registros, hago otra consulta y me da otros y, por decirlo así, los engancho detras. Los campos aun que no se llaman igual si son del mismo tipo, asi que problema por eso no hay. Lo que no se como hacer es adjuntar las dos tablas. He pensado en crear un recordset y añadirle los registros como si fueran altas en la bd, pero claro, esto debe ser "falso" deberia usar un recordset sin conexion a la bd. Es esto posible? Como lo puedo hacer? o alguna idea para hacerlo de manera distinta. Si no se entiende algo (lo mas probable, jeje) decidlo e intento aclararlo.

Gracias por vuestro tiempo! Saludos!
__________________
Sr.Propio
  #2 (permalink)  
Antiguo 03/03/2004, 15:49
Avatar de pabli  
Fecha de Ingreso: octubre-2003
Mensajes: 381
Antigüedad: 20 años, 6 meses
Puntos: 0
rafapaskual,

tengo una duda, tú no quieres juntar los campos de dos tablas mediante un JOIN, sino de dos tablas idénticas en contenidos, juntarlas en un recordset, no?

si lo que necesitas es lo segundo, no hay ningún problema.
-abres un primer recordset con la primera tabla
-llenas uno creado a mano con los datos del anterior
-cierras el primero
-y lo vuelves a abrir con la segunda tabla
-"rellenas" el creado a mano

no estoy seguro si te lo va a pillar el datagrid pues es muy puñetero, es cuestión de probar.

Que BBDD es??

Saludos
Pablo
  #3 (permalink)  
Antiguo 03/03/2004, 18:13
 
Fecha de Ingreso: septiembre-2003
Mensajes: 172
Antigüedad: 20 años, 7 meses
Puntos: 0
Gracias pabli, es eso lo que quiero hacer, mi pregunta es... como lo lleno sin conectarlo?
__________________
Sr.Propio
  #4 (permalink)  
Antiguo 04/03/2004, 01:38
Avatar de pabli  
Fecha de Ingreso: octubre-2003
Mensajes: 381
Antigüedad: 20 años, 6 meses
Puntos: 0
Código:
    'Creo el recordset dinámicamente
    Set Gado_ficha = Nothing
    Set Gado_ficha = New ADODB.Recordset
    Gado_ficha.CursorType = adOpenKeyset '= adOpenStatic
    With Gado_ficha
        .Fields.Append "campo1", adVarChar, 80, adFldUpdatable And adFldIsNullable
        .Fields.Append "campo2", adDouble, adFldUpdatable And adFldIsNullable
        .Open
    End With
No he incluído la declaración del recordset ni la adición de registros mediante ADDNEW y UPDATE.


Pero hay una solución mejor, mucho mejor:

-creas una tabla exactamente igual en la base de datos fija
-rellenas y borras los registros cuando te apetezca
-no necesitas líos de recordset y menos lógica de programa

si no hay problema por tener una tabla temporal, para mi es la mejor opción.

Saludos
Pablo
  #5 (permalink)  
Antiguo 04/03/2004, 08:44
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 2 meses
Puntos: 1
UNION

Otra solución es hacer una UNION,

(Select * from tabla) UNION (Select * from otratabla)

Para que pueda hacer la union, los select tiene que tener el mismo orden, igual cantidad de columnas y ser del mismo tipo.

Saludes
__________________
Leer es Saber, REEL.
Mi Blog

Última edición por reel; 04/03/2004 a las 08:47
  #6 (permalink)  
Antiguo 04/03/2004, 11:50
 
Fecha de Ingreso: septiembre-2003
Mensajes: 172
Antigüedad: 20 años, 7 meses
Puntos: 0
Hola a todos! Y gracias por vuestra ayuda, lo de la tabla temporal no me acaba de molar pq puede ser que mas de un cliente este realizando una consulta y tendria que currarme una identificación o un bloqueo algo similar gracias de todas maneras, probaré lo del recordset, gracias Pabli. Reel gracias por tu método, lo probaré si funciona me decantaré por él, no conocia esa sentencia.

Gracias a todos! Saludos!
__________________
Sr.Propio
  #7 (permalink)  
Antiguo 04/03/2004, 12:42
 
Fecha de Ingreso: septiembre-2003
Mensajes: 172
Antigüedad: 20 años, 7 meses
Puntos: 0
Gracias reel lo de UNION ha sido todo un descubrimiento para mi!

Y gracias a los 2 por vuestra ayuda!
__________________
Sr.Propio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:37.