Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Modificación de Datos mediante Consultas.. (https://www.clubdelphi.com/foros/showthread.php?t=35520)

anghell77 13-09-2006 07:36:30

Modificación de Datos mediante Consultas..
 

NOTA:
SOPAS!!!!!
Un Error, bien lo dice Román en la otra guía de estilo en el punto 1....
Pero este fue un error de Dedote....a pesar de no haberlo tecleado.... Presioné este Foro, previendo que fuera SQL, pero ya ven que a veces se nos van las cabras (nos despistamos).....Esta nota fue escrita luego de levantar el Post....Si algún moderador está pendiente, y desea moverlo, adelante...Gracias


Buen día, compañeros....
Trabajando en Delphi 7 y Paradox....

Como propone el buen amigo Lepe aquíhttp://clubdelphi.com/foros/showthread.php?t=31954
me enseñó a modificar en tiempo de ejecución los datos que arroja una consulta...

Pues bien, bajo ese precepto...agrego la duda, que nada tiene que ver con el código del hilo anterior: Realizo una consulta, me despliega los datos en un DBGrid, en evento OnDblClick de éste, me arroja un nuevo formulario con los datos seleccionados y todo bien. Bueno, pues éste Formulario es para Modificar los datos que hayan sido entrados erróneamente y que se desea corregir....

Código Modificar:

Código Delphi [-]
DataModule2.Selec_Cve.Close; 
DataModule2.Selec_Cve.RequestLive:=true;
DataModule2.Selec_Cve.Open;
//Esta es la consulta que me devuelve los datos seleccionados en el DBGrid

//Estos son los DBEdits correspondientes a la consulta, que se activan para poder modificarse
DBEdit1.ReadOnly:=false;          DBEdit2.ReadOnly:=false;
DBEdit3.ReadOnly:=false;          DBEdit4.ReadOnly:=false;
DBEdit5.ReadOnly:=false;          DBEdit6.ReadOnly:=false;
DBEdit7.ReadOnly:=false;          DBEdit8.ReadOnly:=false;
DBEdit9.ReadOnly:=false;          DBEdit10.ReadOnly:=false;
DBEdit11.ReadOnly:=false;         DBEdit12.ReadOnly:=false;
DBEdit13.ReadOnly:=false;         DBEdit14.ReadOnly:=false;
DBEdit15.ReadOnly:=false;         DBEdit16.ReadOnly:=false;

Bien, pues como éste formulario presenta a base de DBEdits los datos, he añadido (para facilidad del usuario) unos Combobox, para que batalle menos y de paso no escriba datos que no debe, como la selección de la ubicación del libro que está modificando. Y al evento on Change de éstos, he dispuesto que envíe lo que se ha seleccionado al campo correspondiente:

Ojalá lo haya podido explicar. Hasta aquí todo bien, el problema viene cuando, al momento de Actualizar.

Actualizar:

Código Delphi [-]
CveSelect:=DBEdit1.Text; //Variable que Almacena la Clave del Libro que se ha modificado
AutorSelect:=DBEdit3.Text; //Variable que Almacena el Autor del Libro Modificado
DataModule2.Selec_Cve.Refresh;
Info_Modif.Close; //Cierra el Formulario

//Aqui limpio el SQL de la primera consulta y muestra el primer formulario con los datos modificados

DataModule2.Cve_Tit_Aprox.Close;            DataModule2.Cve_Tit_Aprox.SQL.Clear;
DataModule2.Cve_Tit_Aprox.SQL.Add('select *from Inventario where Titulo=:entrada');
   DataModule2.Cve_Tit_Aprox.ParamByName('entrada').AsString:=CveSelect;
DataModule2.Cve_Tit_Aprox.Open;
DataModule2.HelpTableRecNo.Value:=DataModule2.Cve_Tit_Aprox.RecNo;
DataModule2.HelpTableRecordCount.Value:=DataModule2.Cve_Tit_Aprox.RecordCount;
   ShowMessage('Registro Actualizado');

//Actualiza la Consulta

Esa es la bronca, que en realidad no actualiza los campos si es que no se ha tecleado algo sobre los DBEdits...y suponiendo que se teclee pues bueno, eso funciona, pero si se entra directamente a los Combobox, sin tocar DBEdits, no actualiza nada.

Editando, los Combobox reemplazan DBEdits y la selección de algún Item de éstos se envía directamente al DBEdit correspondiente, y es de suponerse que debería de funcionar, pero como no se toca DBEdit alguno (vamos, suponiendo que la única parte "modificable" fuera donde se ubican los Combobox), al momento de cerrar el Formulario, y devolver el "Registro Actualizado" devuelve el correcto, mas no la actualización de éste.

Agradezco la ayuda..

{Saludos}

xEsk 18-09-2006 18:56:40

No he usado nunca Paradox, pero diria q te falta hacer el "commit" o "post" tras actualizar los datos.

Y otra cosa, esq tambien podrias hacer el "update" via SQL.

vtdeleon 18-09-2006 19:37:41

O usando el metodo ApplyUpdate del Query.


Saludos

anghell77 19-09-2006 03:29:39

Gracias, Compañeros!!!....Apenas hoy mismo que envian sus respuestas he vuelto de la zona serrana de Druango, México, ahí donde no hay luz (por ende ni comunicación alguna), y el cielo se ve como tan cerca y espléndido como éste hubiera nacido...

Me he decidido por hacer el Update Vía SQL y parámetros....muchas gracias compañeros....Me quedo con las opciones y también haré la prueba con el Commit, Post y ApplyUpdate que mencionaron...

Situación Resuelta...Gracias!!!
:)
{Saludos}


La franja horaria es GMT +2. Ahora son las 10:53:23.

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