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 06-02-2007
setry2 setry2 is offline
Miembro
 
Registrado: may 2003
Ubicación: Elche
Posts: 45
Poder: 0
setry2 Va por buen camino
Misma consulta sobre bd distintas. No actualiza info obtenida.

Hola a todos,

Por falta de experiencia creo que me estoy dejando algo sin hacer. A ver si me podéis ayudar.

Estoy haciendo un programa con Delphi 5 sobre Access 97. Tengo 7 bases de datos access, una para cada año, 2000.mdb, 2001.mdb etc. Todas estas bd las conectaba al iniciar el programa, pero ahora quiero conectar el programa a la bd correspondiente según el año indicado en un combo. Al cambiar del año, en un dbgrid se muestra la info correspondiente a ese año.

El problema que tengo es que si selecciono 2007, muestra la info de 2007, y al cambiar a 2006, me sigue mostrando la info de 2007. Lo que hago cuando vario el año es desconectar la bd de 2007 y conectarle la de 2006, pero parece que no tengo algo en cuenta porque parece que mantiene la conexión con 2006. KeepConection está a false.

Este es el código. Os añado las propiedades de la bd para que veáis como la tengo configurada por si falla algo:

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

dbContabilidad.params.add('DATABASE NAME=' + rutaBD); //Es la ruta a la bd segun el año
dbContabilidad.databasename := 'BDContabilidad';
dbContabilidad.drivername := 'MSACCESS';
dbContabilidad.exclusive := false;
dbContabilidad.HandleShared := false;
dbContabilidad.KeepConnection := false;
dbContabilidad.LoginPrompt := false;
dbContabilidad.Name := 'dbConta';
dbContabilidad.ReadOnly := false;
dbContabilidad.SessionName := 'Default';
dbContabilidad.Tag := 0;
dbContabilidad.TransIsolation := tiReadCommitted;
dbContabilidad.connected := true;

Luego ejecuto la qry que muestra los datos en el grid.

Como no conseguía que fuera he pensado crear la bd en ejecución cada vez que hacía la consulta a la bd. Pero de nuevo vuelvo a hacer algo mal, porque al seleccionar un nuevo año trato de liberar la anterior antes de crear la nueva pero no la encuentra:

He probado de dos formas:

if Assigned(dbConta) then FreeAndNil(dbConta), pero siempre me da falso.

y, por probar (un poco bruto), buscando el componente en la aplicación:

Al código anterior le añado: dbContabilidad := TDataBase.Create(self);

var dbContabilidadAux: TDataBase; //declaro.

dbContabilidadAux := Application.FindComponent('dbConta') as TDataBase;

if Assigned(dbContabilidadAux) then
begin
dbContabilidad.connected := false;
dbContabilidad.CloseDatasets;
dbContabilidad.Close;
freeandnil(dbContabilidad);
freeandnil(dbContabilidadAux)
end;

Pero no localizo el conponente. No se si lo estoy creando mal o que.

Otra opción que sí funciona es crear en mi bd tablas adjuntas al resto de bd y hacer la qry sobre ella, pero es justo lo que trato de evitar.

Bueno, un poco lioso, pero seguro que tiene que ser una tontería.

Gracias de antemano.
__________________
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
Info sobre XML en Delphi 5 ebeltete Varios 2 19-09-2005 09:28:37
pasar de una tabla1 a una tabla2 la misma info el_barto Conexión con bases de datos 7 31-08-2005 18:58:44
donde bajar info, tutoriales sobre delphi .net? Pascual Montes .NET 2 09-05-2005 19:28:10
info sobre firebird JoseQ Firebird e Interbase 2 13-08-2004 09:29:16
distintas picklists en la misma columna de dbgrid arc22 Varios 4 28-06-2004 16:10:30


La franja horaria es GMT +2. Ahora son las 02:55:46.


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