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 Temas de Hoy

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 10: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



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


La franja horaria es GMT +2. Ahora son las 06:56:49.


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