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 23-07-2015
jsc jsc is offline
Miembro
 
Registrado: nov 2003
Posts: 144
Poder: 21
jsc Va por buen camino
TADOQuery no actualiza registros

Hola,
Llevo varios dias haciendo pruebas y revisando codigo y por mas que intento cosas no consigo resolver el problema.
El caso es el siguiente:

Sistema : Windows 7
Bd: Access 2007
Delphi: Delphi 7
Componentes : TADOConnection, TADOQuery, TDataSource, TDbGrid

Formularios: Clientes, Facturas...

Dinamica: El Form Clientes (donde se muestran todos los clientes de la Bd en un dbGrid) mediante un boton Nuevo llama a otro Form donde añadimos los datos del cliente nuevo. Aqui podemos dar de alta, uno o varios Clientes. Al cerrar el Formulario, regresamos al Form Clientes (no ha sido cerrado en ningun momento) y se actualizan los datos de los clientes agregados.
Es en este ultimo paso donde hay veces que en el dbgrid semuestran todos los registros agregados y otras veces no. No entiendo el porque. La vez que no aparecen, si vuelvo a darle a un boton que limpia (borra los datos de unos Edits que tengo y carga nuevamente los datos de la bd - close y open del ADOQuery) aparecen; vamos, como si cerrariamos y abririamos dos veces la bd.

Con el Form Facturas, el funcionamiento es excactamente igual y aqui no tengo problemas de este tipo; he comparado todo y esta igual en ambos formularios. Algo se me escapa y no se que es

En Clientes...
Código Delphi [-]
procedure TfrmClientes.sbAddClientClick(Sender: TObject);
begin
   //Creamos y mostramos frmClientDetails
   AbrirForm ('Añadir');
   loadClients ('idc') ;
   marcarCeldaDeOrdenacion (0); // marcamos celda de ordenacion por id Cliente
end;

procedure abrirForm (estado:string); // Creamos y mostramos el Formulario Detalle en modo Añadir o Editar
begin
   //Creamos y mostramos el Form Detalles de Clientes
   //Añadimos el estado Añadir,Editar,Borrar
   Application.CreateForm(TfrmClientDetail,frmClientDetail);
   frmClientDetail.StatusBar1.Panels.Items[1].Text := estado ;
   frmClientDetail.showmodal; ;
end;

procedure loadClients (celda:string); // cargamos los Clientes en el dbGrid
begin
   with frmClientes do
      with ADOQClientes do
            begin
//                  showmessage ('adoqclientes.close');
                  close;sql.clear;parameters.Clear;
                  sql.add ('SELECT idc,cif,cliente,poblacion,telefono,direccion FROM CLIENTES ORDER BY ' + celda + ' DESC'); // ORDER BY IDC ASC
                  showmessage (sql.Text);
                  if not prepared then
                        begin close;prepared;open end
                  else Open;
                  showmessage ('adoqclientes.open - registros: '+inttostr(recordcount));
                  if (recordcount > 0) then else close;
                  frmClientes.DBGrid1.SetFocus;
            end;
end;
Al activarse el Form clientes, llama a loadClients ('idc') y los datos se muestran bien; de hecho, cuando los datos agregados no se muestran, tambien si salgo y vuelvo a Entrar al Form clientes aparecen; y como he dicho antes, si cierro y vuelvo a abrir el ADOQuery tambien; pero porque el hecho de tener que abrir y cerrarlo dos veces ?

alguna idea?
gracias de antemano

Última edición por Casimiro Notevi fecha: 23-07-2015 a las 11:50:56.
Responder Con Cita
  #2  
Antiguo 23-07-2015
jsc jsc is offline
Miembro
 
Registrado: nov 2003
Posts: 144
Poder: 21
jsc Va por buen camino
Solucionado

Tema solucionado

Tengo un TADOConnection con los datos de conexion a la Bd en un DataModule; todos los ADOQuery tienen la propiedad Connection como se ve abajo:

Código:
TADOQuery.Connection := DataModule1.ADOConnection1
excepto el que daba de alta los Clientes Nuevos, que lo hacia a traves de ADOConnectionString; Por el momento las pruebas que he hecho funcinan

gracias a todos
Disculpad las molestias
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
TADOQuery bastian Conexión con bases de datos 1 27-02-2009 19:17:14
Problemas con el TADOQuery Alexandro SQL 8 16-01-2009 08:22:22
ayuda con TADOQUERY az_jazo SQL 1 16-09-2005 00:37:40
Parametros en un TADOQuery Osorio Conexión con bases de datos 2 24-11-2003 01:25:37
Problema con TADOQuery saul_montalvo Conexión con bases de datos 2 23-05-2003 20:08:54


La franja horaria es GMT +2. Ahora son las 13:26: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