Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-02-2007
setry2 setry2 is offline
Miembro
 
Registrado: may 2003
Ubicación: Elche
Posts: 45
Poder: 0
setry2 Va por buen camino
Utilizar un mismo TDataBase para distintas db.

Hola a todos!

Me gustaría utilizar un solo TDAtaBAse para, en tiempo de ejecución, conectarme a distintas bd a elección. Para ello, cierro los datasets, desconecto la conexión previa y cierro la bd; luego le paso al TDataBase la ruta de la otra bd y la conecto. El problema es que hago la qry sobre la nueva bd y los resultados que muestro en el dbgrid pertenecen a la bd anterior.

¿Sabéis por donde puede ir el asunto?

Gracias de antemano!
__________________
Setry2
Eres un bit?
www.lafesta.com
Responder Con Cita
  #2  
Antiguo 08-02-2007
setry2 setry2 is offline
Miembro
 
Registrado: may 2003
Ubicación: Elche
Posts: 45
Poder: 0
setry2 Va por buen camino
BD Access 97 y Delphi 5.

Perdonad, no había mencionado la bd y la versión de Delphi. Sorry!
__________________
Setry2
Eres un bit?
www.lafesta.com
Responder Con Cita
  #3  
Antiguo 08-02-2007
Avatar de xavinet
xavinet xavinet is offline
Miembro
 
Registrado: mar 2005
Posts: 41
Poder: 0
xavinet Va por buen camino
Hola!

Hola!

Te has asegurado bien de cerrar todos los componentes, incluida la query, antes de hacer el cambio de base de datos?

Porqué en principio no veo problema alguno en lo que haces... deberia cogerte el cambio.

Saludos!
__________________
________________________________
It's no good shouting at me like that
Responder Con Cita
  #4  
Antiguo 08-02-2007
Avatar de xavinet
xavinet xavinet is offline
Miembro
 
Registrado: mar 2005
Posts: 41
Poder: 0
xavinet Va por buen camino
muestranos que haces...

Hola de nuevo!

Tambén podrías poner un poco de código para darnos alguna pista de lo que puede pasar
__________________
________________________________
It's no good shouting at me like that
Responder Con Cita
  #5  
Antiguo 08-02-2007
setry2 setry2 is offline
Miembro
 
Registrado: may 2003
Ubicación: Elche
Posts: 45
Poder: 0
setry2 Va por buen camino
Código.

Primero gracias por tu respuesta. Fíjate que es lo que hago:

Tengo un objeto TDataBase en el formulario, que NO creo en ejecución.

//Cojo del registro de windows la ruta a la bd en función del anyoContable que quiero consultar
baseDatosConta := LeerRegistro('Bases de datos', 'BDconta'+anyoContable);

//Se la paso a la bd y me contecto

if dbContabilidad.connected = true then
begin
dbContabilidad.CloseDatasets;
dbContabilidad.Close;
dbContabilidad.connected = false
end;

dbContabilidad.params.add('DATABASE NAME=' + baseDatosConta);
dbContabilidad.connected := true;

//Libero la qry que contiene los datos que muestro en el grid.
if Assigned(qryMayor) then
FreeAndNil(qryMayor);

qryMayor := TQuery.create(self);
dsMayor.DataSet := qryMayor; //datasource

with qryMayor do
try
DatabaseName := 'BDContabilidad';
RequestLive := true;
SQL.Add(' laquery ');
Open;
if not isEmpty then
begin
dbgMayor.DataSource := dsMayor; //El grid y el data source.
dsMayor.Autoedit := false;
end;
except
On E: Exception do
begin
CapturaErrores(E);
Cancel;
end;
end;

El funcionamiento erróneo que me da es el siguiente:

Selecciono del combo el AnyoContable 2006 pasando como parametro una cuenta contable del cliente 430000001-> Se muestra en el grid los datos referentes a 2006 para la cuenta contable de ese cliente.

Selecciono del combo el AnyoContable 2007 pasando como parametro otra cuenta contable del mismo cliente 431000001 -> Se muestra en el grid los datos referentes a 2006 de la otra cuenta del cliente, en vez de 2007.

Como ves, la qry es distinta cada vez, y los datos que muestran son distintos, pero siempre referidos a 2006.

Si ahora buscara de la cuenta 432000001 para el 2004, me mostraría del 2006 la cuenta 432000001, es decir, el problema debe estar en la conexión con la bd, que no varía.

Bueno, a ver si te he dado alguna pista.

Gracias por tu tiempo!
__________________
Setry2
Eres un bit?
www.lafesta.com
Responder Con Cita
  #6  
Antiguo 08-02-2007
Avatar de xavinet
xavinet xavinet is offline
Miembro
 
Registrado: mar 2005
Posts: 41
Poder: 0
xavinet Va por buen camino
pa probar que no quede...

Hola!



La verdad es que no se me ocurre nada... a no ser... que aunque ya veo que destruyes y vuelves a crear la query... quede en memoria por alguna razón, la verdad és que... lo que me soluciona un montón de problemas siempre, és hacer un close y un open de la query,así siempre me refresca bien los datos.

En tu caso:
Código Delphi [-]
qryMayor.close;
qryMayor.open;
Siento no ser de + ayuda. Suerte!
__________________
________________________________
It's no good shouting at me like that
Responder Con Cita
  #7  
Antiguo 09-02-2007
setry2 setry2 is offline
Miembro
 
Registrado: may 2003
Ubicación: Elche
Posts: 45
Poder: 0
setry2 Va por buen camino
Lo hemos intentado.

Bueno, lo hemos intentado. Muchas gracias por tu tiempo. Un saludo.
__________________
Setry2
Eres un bit?
www.lafesta.com
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
RARISIMO mismo codigo cosas distintas no modifica campo TEXTO Patricio Conexión con bases de datos 1 10-08-2005 21:29:53
Insertar en dos tablas distintas al mismo tiempo Patricio Conexión con bases de datos 2 04-07-2005 15:05:36
Etiquetas diferentes para hojas distintas torito Impresión 2 14-04-2005 01:03:33
utilizar mismo form en distintos modulos @-Soft Conexión con bases de datos 5 09-07-2004 13:51:21
Un mismo proyecto accediendo desde conexiones distintas carlosmari Conexión con bases de datos 6 02-11-2003 14:49:43


La franja horaria es GMT +2. Ahora son las 19:57:42.


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