Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-11-2008
Avatar de alonso.esparza
alonso.esparza alonso.esparza is offline
Miembro
 
Registrado: nov 2008
Posts: 16
Poder: 0
alonso.esparza Va por buen camino
Red face problema para refrescar DBgrid

Saludos ahi molestado de nuevo:

Tengo una aplicacion de altas y bajas, ya guarda y modifica y elimina y todo pero los datos no me los actualiza en el DBGrid:

1. Cuando Ejecuto la aplicacion en el db grid los datos de dos columnas no aparecen, pero (como tengo un evento que si le doy click al BDGrid me muestre los datos en unos edit box) cuando le doy click al DBGrid me aparecen todos los datos en los Editbox correctamente, y el DBGrid Sigue igual


2. Tengo mi boton de Modificar (Tengo tambien uno de guardar y de borrar y en los tres sucede lo mismo)

--Boton Modificar--

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE ListaDePrecios SET siniva = ' +(E_SinIva2.text) + ', descripcion = ' + QuotedStr(E_Des2.Text) +' , observacion = ' + QuotedStr(memo1.Lines.Text) + ' WHERE clave = '+ QuotedStr(E_Clave2.Text));
ADOQuery1.ExecSQL;

-- --
Si despues del ADOQuery1.ExecSQL; le pongo un ADOQuery1.CLOSE y luego OPEN, o si le pongo un ADOQuery1.ACTIVE:= FALSE y luego TRUE ,me manda un mensaje de error que dice que "el proveedor actual no admite que una unica ejecucion devuelva multiples recordsets"

Logicamente, como no le pongo nada de lo anterior, no me sale el mensaje de error, pero el DBGrid se queda en blanco(amenos que haga una busqueda)

Los cambios los hace perfectamente (Guarda Modifica y todo, es una tabla de Access) pero el DBGrid se queda en blanco.

Bueno por si no se entiende mi ChileVerdeConQueso (Es como decir ''a todo mi rollo reburujado que les escribi"), lo unico que quiero que haga mi DBGrid es que se ACTUALIZE cuando haga algun cambio. =)

Ayuda porfa

atte.
Sergio Alonso Esparza

Saludos

Última edición por alonso.esparza fecha: 05-11-2008 a las 22:54:59. Razón: me falto alcarar la informacion
Responder Con Cita
  #2  
Antiguo 05-11-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola...

Si luego de hacer ADOQuery1.ExecSQL haces un ADOQuery1.Open, es lógico que lo que obtengas es un error, ya que la propiedad SQL de ADOQuery1 todavía tiene la sentencia UPDATE ListaDePrecios......


Saludos...
Responder Con Cita
  #3  
Antiguo 05-11-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Wink

Hola

para que no te compliques tanto deberás utilizar 2 Query's..

1 para mostrar los datos en el DBGrid.... (Query_Selecciona), y
1 para realizar las modificaciones de los datos ...(Query_Actualiza)...

Lo que tienes que hacer tu proceso seria más o menos así...

1.- Ingresar al Form
2.- Seleccionar los datos para mostrar en el DBGrid (vinculados al Query_Selecciona)
3.- Modificar cualquier información que quieras de cualquier registro (pero lo tienes que realizar con el Query_Actualiza)
4.- Refrescar el Query_Selecciona... o ejecutar aquí el paso 2)... esto te debería actualizar la información de tu DBGrid...

salu2
__________________
BlueSteel
Responder Con Cita
  #4  
Antiguo 05-11-2008
Avatar de alonso.esparza
alonso.esparza alonso.esparza is offline
Miembro
 
Registrado: nov 2008
Posts: 16
Poder: 0
alonso.esparza Va por buen camino
Ok Gracias no habia pensado en eso BlueSteel, voy a modificar jeje.
Aunque lo de maeyanes lo senti un poco como regaño, =) sta bien siempre se aprende algo nuevo, te prometo que no lo vuelvo a hacer maeyanes


Gracias

Saludos

atte.
Sergio Alonso Esparza Perez
Responder Con Cita
  #5  
Antiguo 05-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola , como te dice el amigo mayanes, tu Sql sigue con tu update, para que te salga el listado nuevmente tienes que volver a realizar el select en tu query

Código Delphi [-]
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE ListaDePrecios SET siniva = ' +(E_SinIva2.text) +
                             ', descripcion = ' + QuotedStr(E_Des2.Text) +
                             ' , observacion = ' + QuotedStr(memo1.Lines.Text) +
                             ' WHERE clave = '+ QuotedStr(E_Clave2.Text));
ADOQuery1.ExecSQL;
 
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM ListaDePrecios');
ADOQuery1.Open;

pero como te dice BlueSteel, lo mejor es usar 2 querys uno que sirva para hacer tus cambios y el otro para enlazarlo a tu DBGrid, así para actualizar haces solo un Close y un Open.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 05-11-2008 a las 23:39:10.
Responder Con Cita
  #6  
Antiguo 06-11-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por alonso.esparza Ver Mensaje
1. Cuando Ejecuto la aplicacion en el db grid los datos de dos columnas no aparecen, pero (como tengo un evento que si le doy click al BDGrid me muestre los datos en unos edit box) cuando le doy click al DBGrid me aparecen todos los datos en los Editbox correctamente, y el DBGrid Sigue igual

Si despues del ADOQuery1.ExecSQL; le pongo un ADOQuery1.CLOSE y luego OPEN, o si le pongo un ADOQuery1.ACTIVE:= FALSE y luego TRUE ,me manda un mensaje de error que dice que "el proveedor actual no admite que una unica ejecucion devuelva multiples recordsets"

Elimina las columnas del DBGrid y vuelve a crearlas, a veces no aparecen porque han cambiado los nombres.

Los UPADET/INSERT/DELETE siempre con ExecSQL, no con Open ni Active.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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
Como Refrescar un Dbgrid darioivan Varios 4 19-03-2008 22:24:57
Refrescar datos de un DBGrid Durbed Conexión con bases de datos 3 29-01-2007 16:39:05
refrescar dbgrid que usa dbexpress chux Conexión con bases de datos 2 22-05-2006 17:31:06
Refrescar un query para un DBGrid neon OOP 4 19-08-2004 17:06:39


La franja horaria es GMT +2. Ahora son las 05:06:33.


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